Spring实战读书笔记 第三章 最小化 Spring XML配置
1,自动装配(autowiring)有助于减少甚至消除配置<property>元素,让Spring自动识别如何装配Bean的依赖关系。
2,自动检测(autodiscovery)让Spring自动识别那些类需要配置为Spring Bean,减少<bean>元素使用。
3,四种自动装配:
-1,byName:把与Bean的属性具有相同名字(或者ID)的其他Bean自动装配到Bean的对应属性中,如果没有跟属性名字相匹配的Bean,则该属性不进行装配。
-2,byType:把与Bean的属性具有相同类的其他Bean自动装配到Bean对应的属性中去。如果不存在,则不进行装配。
-3,constructor:把与Bean的构造入参具有相同类型的其他Bean自动装配到Bean的构造参数中。
-4,autodetect:首先尝试constructor进行自动装配,如果失败则尝试byType。
byName自动装配:
如下代码为普通的装配
<bean id="kenny2" class="chp02.springdol.Instrumentalist">
<property name="song" value="122132"></property>
<property name="inst" ref="sandbox"></property>
</bean>
<bean id="sandbox" class="chp02.springdol.Saxophone"></bean>
使用byName自动装配:
<bean id="kenny2" class="chp02.springdol.Instrumentalist" autowire="byName">
<property name="song" value="122132"></property>
</bean>
<bean id="inst" class="chp02.springdol.Saxophone"></bean>
byName自动装配遵循:为属性自动装配ID与该属性的名字相同的Bean。
byType自动装配:
byType自动寻找类型相同的Bean注入,如果Spring找到多个类型匹配的类,那么会抛出异常。为了避免这点,可以设置首选bean。
constructor自动装配,与其他类似。
4,设置默认制动装配,default-autowire
<?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"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" default-autowire="byType">
5,使用注解装配。
<?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"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" default-autowire="byType">
<context:annotation-config/>
</beans>
使用<context:annotation-config/>启用注解:
-1,使用@Autowired
@Autowired
public void setInstrument(Instrument instrument) {
this.instrument = instrument;
}
使用注解标识当前成员变量或者bean使用自动注入。
6,自动检测标注Bean:
-1,@Component:通用的构造型注解,标识该类为Spring组件。
-2,@Controller:标识该类为Spring MVC Controller。
-3,@Repository:标识该类为数据仓库。
-4,使用@Component标注任意自动一注解。
欢迎转载,但转载请注明原文链接[博客园: http://www.cnblogs.com/jingLongJun/]
[CSDN博客:http://blog.csdn.net/mergades]。
如相关博文涉及到版权问题,请联系本人。
[CSDN博客:http://blog.csdn.net/mergades]。
如相关博文涉及到版权问题,请联系本人。