spring中的注解
spring5.0已经可以实现零配置开发,这一点为springboot提供了很好的支持
列举注解:
@Configuration一般与其他注解配合使用 修饰的类作为一个ioc容器,方法上修饰了@Bean,就会作为这个spring容器中的bean
@ComponentScan 包扫描类,配合@Configuration使用 会将扫描到的包中的类生成为一个bean放入spring容器中,这个注解拓展性比较强
可以通过includeFilters属性中的FilterType指定修饰的注解类型,类类型,还可以通过实现接口TypeFilter实现
boolean match(MetadataReader var1, MetadataReaderFactory var2) throws IOException;方法来自定义过滤条件
@Component一个通用组件,当无法确认当前类所属的业务范围的时候,可以不直接指定@Service,@Repository这样注解,效果是一样的

@Conditional自定义实例化条件的注解,需要实现Condition接口实现
boolean matches(ConditionContext var1, AnnotatedTypeMetadata var2);方法。
@Lazy懒加载注解,只在调用的时候才加载,只针对单例模式,多例本身就是每次调用的时候加载的
@Scope作用域注解 prototype 多例 ,singleton 单例,request和session主要应用于web模块,同一个request或者session只创建一个实例
定义一个bean的生命周期监控的方式
直接在注解内添加属性@Bean(initMethod = "new",destroyMethod = "close")
实现InitializingBean和DisposableBean接口
@Component
public class Peak implements InitializingBean,DisposableBean {
@Override
public void destroy() throws Exception {
}
@Override
public void afterPropertiesSet() throws Exception {
}
}
使用@PostConstruct和@PreDestroy注解,前者策略模式的实例容器的初始化中经常使用,保证了执行顺序,在所在实例初始化成功之前完成装配
定义一个类实现BeanPostProcessor并且实现方法
@Nullable
default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@Nullable
default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
可以通过bean的信息做过滤
@Import 快速给容器导入组件Bean
a. @Import 直接传参导入
b. ImportSelector 自定义导入规则
可以同时支持
@Import(value = {Class.class,ImportSelector.class,ImportBeanDefinitionRegistrar.class})
c.ImportBeanDefinitionRegistrar ,使用BeanDefinitionRegistry可以手动注入到IoC容器中
@Primary容器中存在通用名称的实例的话,指定有效的一个加上该注解
@PropertySource("classpath:application.properties")指定加载的配置文件与@Value配合使用
@Value读取配置文件,支持springEL表达式
@Qualifier(1)指定bean的注入优先级

浙公网安备 33010602011771号