装配Bean
- 创建应用对象之间写作关系的行为通常称为装配(wiring),这是依赖注入(DI)的本质。
2.1配置的可选方案 P34
- 在XML中进行显示配置;
- 在Java中进行显示配置;
- 隐式的 bean 发现机制和自动装配。
建议尽可能地使用自动配置机制, 然后是 JavaConfig配置,最后是 xml配置。
2.2 自动化装配 bean P35
Spring从两个角度来实现自动化装配:
- 组件扫描(component scanning)
- 自动装配(autowiring)
2.2.1 创建可被发现的 bean P35
2.2.2 为组件扫描的 bean 命名 P38
- @Component("name")
2.2.3 设置组件扫描的基础包 P39
- @ComponentScan(basePackages = {"package name1", "package nam2",...})
- @ComponentScan(basePackageClasses={Class1.class, Class2.class,...})
2.2.4 通过为 bean 添加注释实现自动装配 P40
- @Autowired(required=false)
- @Inject
2.2.5 验证自动装配 P41
image.png image.png2.3 通过 Java 代码装配 bean P44
- 显示配置 bean有两种可选方案:Java 和 XML。
2.3.1 创建配置类 P44
- @Configuration
2.3.2 声明简单的 bean P45
- @Bean(name="name") //默认首字母小写类名
2.3.3 借助 JavaConfig 实现注入 P46
2.4 通过 XML 装配 bean P48
- 使用 Spring Tool Suite 创建配置XML文件
2.4.2 声明一个简单的 bean P49
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="compactDisc" class="soundsystem.BlankDisc">
<constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band" />
<constructor-arg value="The Beatles" />
</bean>
<bean id="cdPlayer" class="soundsystem.properties.CDPlayer"
p:compactDisc-ref="compactDisc" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="compactDisc" class="soundsystem.BlankDisc"
c:_0="Sgt. Pepper's Lonely Hearts Club Band"
c:_1="The Beatles" />
<bean id="cdPlayer" class="soundsystem.CDPlayer"
c:_-ref="compactDisc" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="compactDisc"
class="soundsystem.BlankDisc">
<constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band" />
<constructor-arg value="The Beatles" />
</bean>
<bean id="cdPlayer"
class="soundsystem.CDPlayer">
<constructor-arg ref="compactDisc" />
</bean>
</beans>
2.4.3 借助构造器注入初始化 bean P50
image.pngimage.png
- 字面量注入到构造器中
使用 value 属性 - 装配集合
2.4.3 设置属性 P56
-
property 属性 简写为: p-
image.png
image.png
image.png
2.5 导入和混合配置 P61
2.5.1 在 JavaConfig 中引用 XML 配置 P61
- @Import({Class1.class, Class2.class})
- @ImprotResource(“classpath:cd-config.xml”)
2.5.2 在 XML 中引用 JavaConfig 配置 P63
image.png2.6 小结 P65
- 自动配置
- 基于Java的显示配置
- 基于XML的显示配置
优先级:
自动配置 > 基于Java的显示配置 > 基于XML的显示配置
网友评论