3.在IOC容器中装配Bean

1.spring的bean的三种配置方式:基于XML、基于注解、基于Java类。
   基于XML的配置,spring2.0以后使用Schema格式(书P82)。
   注1:针对xml文档的schema约束,Spring是把XSD文件放到本地了,再在spring.schemas里做了一个映射,优先从本地里加载XSD文件。
   注2:xml可引入<![CDATA[ ]]>特殊处理标签,作用是让XML解析器将标签中的字符串当作普通的文本对待,防止某些字符串对XML个数造成破坏。
   注3:null值对应标签<null/>

2.bean的命名:指定id属性(正常情况都用这个)或者指定name属性
   id的命名需要满足XML对id的命名规范:必须以字母开头,后面可以是字母、数字、连字符、下划线、句号、冒号等完整结束的符号,空格和逗号这些非完整结束符是非法的; name属性没有字符上的限制,几乎可以使用任何字符。
  spring配置文件不允许出现两个相同的id的bean,但却可以出现两个相同name的bean,如果多个name相同的bean,后面的将覆盖前面的bean。
  如果id与name都未指定,spring自动将全限定类名作为Bean的名称。如果多个实现类相同的匿名bean,后面的加#加数字。

3.依赖注入三种方式:属性注入、构造函数注入、接口注入(工厂注入)。
   注:通过属性注入时,一般情况下,java的属性变量名都以小写字母开头。必须满足“变量的前两个字母要么全部大写,要么全部小写”的要求。
   构造函数注入:按类型匹配入参、按索引匹配入参、联合使用类型和索引匹配入参通过自身类型反射匹配入参。(书P91)

4.引用其他bean:<ref>元素可以通过以下三个属性引用容器中其他bean:bean、local、parent。
   bean:通过该属性可以引用同一容器或父容器的bean,这是最常见的形式
   local:通过该属性只能引用同一配置文件中定义的bean,在开发时它可以利用XML解析器自动检验引用的合法性。
   parent:引用父容器中的Bean,如<ref parent="car">的配置说明car的Bean是父容器中的Bean。

5.集合类型属性:主要包括List、Set、Map、Properties,Spring为这些集合类型属性提供了专门的配置元素标签。(书P99)

6.简化配置方式(书P103)

7.自动装配:bean元素提供了一个指定自动装配类型的属性:autowire="<自动装配类型>" 
   spring提供了4种自动装配类型:byName、byType、constructor、autodetect。
   注:与之类似的,利用注解实现spring基本配置:如http://blog.csdn.net/vstar283551454/article/details/8683708
         在Java代码中使用@Autowired或@Resource注解方式进行装配 ,这两个注解的区别是:@Autowired默认按类型装配,@Resource默认按名称装配,当找不到名称匹配的bean才会按类型装配
   
8.如果要实现在单实例对象获取多实例属性对象:通过实现BeanFactoryAware接口或者lookup方法注入。(书P107)

9.整合多个配置文件:spring允许我们通过<import>元素将多个配置文件引入到一个文件中。

10.bean作用域:singleton(默认单例)、prototype、request、session、globalSession。
     后面三个是在web项目里,同时还需要在配置文件中添加http请求的过滤器或监听器。

11.基于注解的配置(书P120):
    1>注解定义bean: @Component:普通bean; @Repository:对DAO实现类标注; @Service:对Service实现类进行标注; @Controller:对Controller实现类标注;
    2>通过注解定义bean与<bean>元素配置一样,默认作用域singleton,可通过@Scope注解修改作用域。
        @PostConstruct和@PreDestroy注解与init-method、destroy-method属性一样,指定bean的初始化及容器销毁前执行的方法。
    3>通过context命名空间提供通过扫描类包以应用注解特定Bean的方式,可以使用过滤表达式。
    4>自动装配bean: 使用@Autowired:@Autowired 默认按类型匹配方式,在容器查找匹配bean
        如果容器有1个以上匹配bean时,使用@Qualifier指定注入bean的名称
   
12.bean不同配置方式比较(书P133)
 
 
一般可以采用XML配置DataSource、SessionFactory等资源Bean,在XML中利用aop、context命名空间进行相关主题的配置。其他所有项目中开发的Bean,都通过基于注解配置的方式进行配置,即整个项目采用“基于XML+基于注解”的配置方式,很少采用基于Java类的配置方式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值