意为控制翻转,其实真正意义上就是Spring创建了一个容器,我们往这个容器里边注册Bean
重要注解
@ComponentScan -> 可以去扫描注解、类、等方式注入bean
配合ThreadLocal使用,实现每个线程的bean独有
@Scope -> 可以自定义bean创建方式,分为单例、原型,自定义
Scope -> 实现接口可以自定义bean创建方式
@Import -> 可以快速导入一个bean
ImportSelector -> 实现接口可以直接自定义选择一些bean注入
ImportBeanDefinitionRegistrar
-> 实现可以写程序注入bean
@Lazy -> 懒加载bean
Linux和Windows注入不同的文件路径
@Conditional(WindowsCondition.class)// 可以以观察者模式去实现不同环境下一些配置
Condition // 实现可以根据一些配置去匹配需要注入的对象
@Bean(initMethod = "init",destroyMethod = "destory") //注入一个bean,可以自定义初始化和销毁方法
InitializingBean -> 实现可以在初始化方法之前执行一个方法
DisposableBean -> 实现可以在初始化方法之后执行一个方法
@Profile("dev") -> 可以在不同环境下配置不同的properties
AnnotationConfigApplicationContext applicationContext =
new AnnotationConfigApplicationContext();
applicationContext.getEnvironment().setActiveProfiles("dev");
@PropertySource("classpath:/db.properties") // 加载一个properties文件
/**
其他接口
*/
EmbeddedValueResolverAware -> 可以
TypeFilter -> 可以根据类型去进行不同的过滤
FactoryBean<Color> -> 实现了可以在获取bean的时候做一系列操作