Spring In Action学习笔记-简化XML的配置

10月 2, 2014 |

1 自动组装(autowire)的四种类型
byName:
byType:
constructor: 类型和构造函数参数相同
autodetect:先constructor组装,失败再byType
autowire是bean的一个属性。

2 byType的多个候选bean的处理
<bean id="saxophone"
class="com.springinaction.springidol.Saxophone"
primary="false"
autowire-candidate="false"/>

primary默认为true, 表示该bean是否为组装的主候选, autowire-candidate表示该bean是否为autowire的候选bean。

3 默认的autowiring
<beans default-autowire="byType", 默认default-autowire=none,

4使用注解装配bean
<context:annotation-config> 启用基于注解的装配
@Autowired默认使用byType装配
@Autowired(required=false) 让这个自动装配变成可选的。
@Qualifier("guitar") 缩小候选的bean.

自定义的Qualifier
@Target({ElementType.FIELD,ElementType.PARAMETER,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface StringedInstrument{
}
然后分别给候选的bean和待注入的属性都使用该自定义的Qualifier,那么只有被自定义的Qualifier注解的bean才能注入。

5使用Inject注入
Provider 延迟注入。
@Named
@Qualifier自定义注解

6 @Value装配基本值及SpEL
7自动发现Bean
<context:component-scan
base-package="com.springinaction.springidol">
</context:component-scan>
兼备<context:annotation-config> 的一切功能,切将使用@Component声明的class自动注册为bean。

8 Component扫描的过滤
<context:component-scan
base-package="com.springinaction.springidol">
<context:include-filter type="assignable"
expression="com.springinaction.springidol.Instrument"/>
</context:component-scan>

type的可选值:annotation,assignable,aspectj,custom,regex
两种过滤类型:include-filter 和?exclude-filter

Posted in: spring practise

Comments are closed.