在Spring中装配bean的三种主要方式:自动化配置、基于Java的显式配置以及基于XML的显式配置。
spring 通过ml注入:
c-命名空间装配时不能装配集合。
在javaConfig中引用xml配置:
在javaConfig类中使用@import导入多个javaConfig,@ImportResource(classpath:***)导入xml配置文件
在xml中注入javaConfig中的bean,使用<bean>标签导入javaConfig类
高级装配:
profile 根据环境装配 @profile("dev")注解,环境变量中有dev时装配(web项目一般在spring的servlet中初始化spring.profiles.default参数)。
条件化的bean:@conditional(A.Class) 类A实现Condtion接口。
解决多bean时的歧义性:
1,使用首选注解@Primary
2,使用限定注解@Qualifier(“限定符”) 在组件bean上加上注解@Qualifier("限定符") .
使用自定义限定注解,更为类型安全,自定义注解上@Qualifier
bean的作用域:@scope();默认为单例,还有Prototype,Session,Request. 单例中注入非单例的bean 使用@scope的proxyMode属性设置。
属性占位符placeHolder
1javaConfig中.@PropertySource("classpath:****") 利用注入的Environment 的 getProperty()来取到配置的值。
2.利用$()读取或@value时,需要装配PropertySourcesPlaceholderConfigurer bean