Bean 的配置
-
自动化装配
@component 组件扫描 + @autowired 自动装配
||ps: 默认的beanId=类名的第一个字母小写,可以用@component(“benaId”)
||@autowired 可以用在构造器和setter方法上,required可以设成false,找不到或者有多个适配的会报错
||@Inject : java依赖注入规范
@componentScan + @configuration 启动组件扫描 可以设置base-package
ps: @componentScan(basepackages={“dada”,“dada”}), @componentScan(baseClasses={dada.class})
@RunWith(SpringJunit4ClassRunner.class)+@ContextConfiguration(classes=CDPlayerConfig.class) 测试用 -
java代码配置
@configuration 表明这是一个配置类 + @Bean 声明这个方法会返回一个对象
|| beanId 和方法名一样, @Bean(name=“test”)可以设置beanId
|| spring 会拦截所有@bean注解的方法的调用,并确保返回该方法创建的bean,并不会实际调用 -
xml配置
<bean class="soundsystem.SgtPeppers />
|| beanId为soundsystem.SgtPeppers#0 ,<bean id=“dada” class="soundsystem.SgtPeppers /> 来指定beanId
|| 声明DI <constructor-arg ref="compactDisc/> 或者 c:cd-ref=“compactDisc” (【cd】 为参数的名称)
|| c:0-ref=“compactDisc” 或者 c:-ref=“compactDisc”(只有一个参数的时候)
|| <constructor-arg value="val /> 将字面量注入到构造器中 c:_title=“this title” 或者 c:0=“titile”
|| c:=“value”(只有一个参数的时候)
|| <constructor-arg <null </constructor-arg
<constructor-arg>
<list>
<value></value>
</list>
</constructor-arg>
或者
<constructor-arg>
<list>
<ref bean="spa"/>
</list>
</constructor-arg>
c标签无法实现集合的配置
|| <property name=“compatDisc” ref="compatDisc 或者 p:compactDisc-red=“compactDisc” , 属性注入
|| <property name=“title” value=“title”
|| p:tracks-ref="tracklist
<unit:list id="tracklist">
<value>value1</value>
</unit:list>
- 导入和混合配置
java代码配置
|| @Import(distConfig.class) 导入java代码配置
|| @ImportResource(“classpath:cd-config.xml”) 导入xml配置
xml配置
||<import resource="cd-config.xml />