配置类与包扫描
- @Configuration 配置类注解 = xml配置文件;
- @ComponentScan 包扫描注解 (“包路径”)
默认扫描:@Controller,@Service,@Repository,@Component
value: 包路径,excluedeFilters:指定排除过滤规则,includeFilters:指定需要过滤规则。 - @ComponentScans 包扫描,可添加多条@ComponentScan规则;
- @Bean 将对象注入容器,默认单实例;
- @Scope 设置对象注入单实例,多实例;
- @Lazy 懒加载 容器启动不创建对象,获取时创建
- @Conditional 按照一定条件规则给容器注入bean对象;
- @Import 导入组件,id默认组件的全类名
- FactoryBean(工厂Bean)默认获取的是工厂bean调用getObject()创建的对象,需要获取工厂bean本身,需要加‘&’
Bean的生命周期
创建—初始化----销毁
- 通过@Bean指定init-method和destroy-method
- 通过让bean实现initializingBean与DisposableBean接口
- 使用JSR250规范 @PostConstruct 对象创建后调用;@PreDestroy 删除对象前调用
- BeanPostProcessor 接口,bean的后置处理器
在bean初始化前后进行处理工作:
- spring底层对BeanPostProcessor的使用:
bean赋值,注入其他组件,@Autowired,生命周期注解