续第二章
二、通过Java代码装配bean(配置类JavaConfig)
应用场景:有时候自动化配置的方案行不通,因此需要明确配置Spring。比如说,想要将第三方库中的组件装配到你的应用中,在这种情况下,是没有办法在它的类上添加@Component和
@Autowired注解的,因此就不能使用自动化装配的方案了。
在进行显式配置的时候,有两种可选方案:Java和XML。而JavaConfig(配置代码)是更好的方案,因为它更为强大、类型安全并且对重构友好。因为它就是Java代码,就像应用程序中的其他Java代码一样。
例:
@Configuration注解表明这个类是一个配置类,该类应该包含在Spring应用上下文中如何创建bean的细节。
@Bean注解会告诉Spring这个方法将会返回一个对象,该对象要注册为Spring应用上下文中的bean。方法体中包含了最终产生bean实例的逻辑。
三、通过XML装配bean(xml文件)
在XML配置中,意味着要创建一个XML文件,并且要以<beans>元素为根。
<bean>元素类似于JavaConfig中的@Bean注解。
通常来讲更好的办法是下面那种,借助id属性,为每个bean设置一个自己选择的名字:
---------------------------------------------------------------------------------------------------------------------------------
借助构造器注入初始化bean
---------------------------------------------------------------------------------------------------------------------------------
在XML中声明DI时,会有多种可选的配置方案和风格。具体到构造器注入,有两种基本的配置方案可供选择:
- <constructor-arg>元素
- 使用Spring 3.0所引入的c-命名空间
1.构造器注入bean引用:
方法1:
当Spring遇到这个<bean>元素时,它会创建一个CDPlayer实例。<constructor-arg>元素会告知Spring要将一个ID为compactDisc的bean引用传递到CDPlayer的构造器中。
方法2:
使用了c-命名空间来声明构造器参数。
可以将参数名字替换为“_0”,或者“_”
2.将字面量注入到构造器中:
方法一:<constructo