关闭

第二章 装配Bean之spring配置可选方案及自动化装配bean

142人阅读 评论(0) 收藏 举报
分类:

2.1 Spring配置的可选方案

主要有三种:

a)在xml中进行显式配置;

b)在java中进行显式配置;

c)隐式的bean发现机制和自动装配;

并没有规定说一定要用某一种方案,三种方案根据情况以及个人喜好而决定,也可以混合使用。但推进:尽可能使用自动配置的机制。显式配置越少越好。但当你必须使用显式配置的时候,推荐使用类型安全并且比xml更加强大的JavaConfig.最后只有当你想要使用便利的xml命名空间,并且在JavaConfig中没有同样的实现时才应该使用xml.

2.2 自动化装配bean.

spring从两个角度来实现自动化装配:

1.组件扫描(component scanning):spring会自动发现应用上下文所创建的bean.

2.自动装配(autowiring):spring自动满足spring之间的依赖。

定义CD的一个接口以及带有@Component注解的CompactDisc实现类SgtPeppers:



定义一个java配置类以及xml配置文件,用于自动扫描组件。

定义一个Player接口及实现类及测试文件
总结:
1.@Autowired可以用在构造器,属性,任何方法前,spring在初始化bean的时候会尽可能去满足bean的依赖,每个使用了该注解的方法都会执行,但一般注入采用一种就可以。
2.如果没有匹配的bean,那么在上下文创建的时候就会抛异常,为了避免,可将@Autowired的required的属性设为false,但你代码如果没判空,可能会出现空指针。
3.@Autowired默认按byType自动注入,就是说如果,注入的时候根据type去寻找,找不到抛找不到异常;找到一个则注入;找到多个则再根据名字去找,如果根据名字(字段名)找不到则抛找到多个异常,找到则注入;
4.@Qualifier 指定注入 Bean 的名称 当使用该注解时,会直接根据该名字去寻找,不会根据类型去找,找到一个则注入。找不到则抛异常,找到多个也抛。该作用域比字段名大。
4.@Component如果不指明id,则会以类名作为id;但书上却说是默认将类名的第一个字母变成小写??

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:517次
    • 积分:104
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类