发表于: 2017-07-07 22:19:29

2 1066


今天完成的事情:

1. @Resource认识了解

    作用@Autowired类似

   @Resource默认按名称进行装配,

   当找不到与名称匹配的bean才会按类型装配

2 .初步了解spring + junit

    已经有了大致思路

3.  补基础,接口和类


明天计划的事情:

1. 学习spring + junit

     两个东西都学过了,打算试试自己写一下

2. 接着补一补基础

     

遇到的问题:

1.发现了一个博客的教程写错了,被误导了。

   @Resource的setxx依赖注入只需要有setxx方法,而依赖构造方法,不需要setxx


收获:

1. @Autowired启用:

必须注册“AutowiredAnnotationBeanPostProcessor'

1.  添加 Spring 上下文和<context:annotation-config />在bean配置文件中。

2.  直接在bean配置文件包含“AutowiredAnnotationBeanPostProcessor”。

    <bean  class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>


2. @Resource装配方法

默认按名称进行装配,

当找不到与名称匹配的bean才会按类型装配

可以标注在字段或者属性的setter方法

可以指定分是name和type


①. 同时指定了name和type,

   从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常

②.  name属性指定;

    从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常

  

③. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,

   找不到或者找到多个,都会抛出异常

④. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;

   4.1 如果没有指定name属性,

       当注解标注在字段上,即默认字段的名称作为bean名称寻找依赖对象;

   4.2 注解标注在属性setter方法上,

       即默认取type(属性名)作为bean名称寻找依赖对象

⑤. 当找不到与名称匹配的bean时才按照类型进行装配(相当于@Autowired)


3 @Autowired默认类型装配依赖对象

    如果想使用名称装配,结合@Qualfier注解一起使用

    @Autowired@Qualifier("spellChecker")





PS: 还有两天就结业考试了,本学期最后一门考试。



返回列表 返回列表
评论

    分享到