一、@Autowired:

1、Spring 2.5 引入了 @Autowired 凝视,它能够对类成员变量、方法及构造函数进行标注,完毕自己主动装配的工作。 通过 @Autowired的使用来消除 set 。get方法。

这个注解就是spring能够自己主动帮你把bean里面引用的对象的setter/getter方法省略。它会自己主动帮你set/get。

<bean id="userDao" class="..."/>

<bean id="userService" class="...">

<property name="userDao">

<ref bean="userDao"/>

</property>

</bean>

这样你在userService里面要做一个userDao的setter/getter方法。

但假设你用了@Autowired的话,你仅仅须要在UserService的实现类中声明就可以。

@Autowired

private IUserDao userdao;

PS:

1、@Autowired是依据类型进行自己主动装配的。

2、@Autowired也能够手动指定依照byName方式注入,使用@Qualifier标签,比如:

@Autowired() @Qualifier("baseDao")


private BaseDao baseDao;

二、@Resource的作用相当于@Autowired,仅仅只是@Autowired按byType自己主动注入,而@Resource默认按
byName自己主动注入。
@Resource有两个属性是比較重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。

所以假设使用name属性,则使用byName的自己主动注入策略,而使用type属性时则使用byType自己主动注入策略。假设既不指定name也不指定type属性,这时将通过反射机制使用byName自己主动注入策略。

@Resource装配顺序  

1.假设同一时候指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常  
2. 假设指定了name。则从上下文中查找名称(id)匹配的bean进行装配。找不到则抛出异常

3.假设指定了type,则从上下文中找到类型匹配的唯一bean进行装配。找不到或者找到多个,都会抛出异常  
4.假设既没有指定name,又没有指定type。则自己主动依照byName方式进行装配;假设没有匹配,则回退为一个原始类型进行匹配,假设匹配则自己主动装配。


三、@Autowired与@Resource的差别
1、@Autowired与@Resource都能够用来装配bean.
都能够写在字段上,或写在setter方法上。

2、@Autowired默认按类型装配(这个注解是属业spring的)。默认情况下必需要求依赖对象必须存在,假设要同意null 值,能够设置它的required属性为false。

3、@Resource(这个注解属于J2EE的),默认安照名称进行装配,名称能够通过name属性进行指定, 

假设没有指定name属性,当注解写在字段上时。默认取字段名进行依照名称查找。假设注解写在setter方法上默认取属性名进行装配。

当找不到与名称匹配的bean时才依照类型进行装配。可是须要注意的是,假设name属性一旦指定,就仅仅会依照名称进行装配。

ps:

@Resource注解在字段上,这样就不用写setter方法了,而且这个注解是属于J2EE的,降低了与spring的耦合。


@Autowired与@Resource的使用方法和差别的更多相关文章

  1. @Autowired与@Resource的差别

    1.@Autowired与@Resource都能够用来装配bean. 都能够写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...

  2. @Autowired 与@Resource的区别

    1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2  @Autowired默认按类型装配(这个注解是属业spring的),默认情况下 ...

  3. java @Autowired与@Resource的区别

    @Autowired与@Resource的区别     1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认 ...

  4. @Autowired与@Resource的区别

    1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...

  5. Spring 注释 @Autowired 和@Resource

    一. @Autowired和@Resource都可以用来装配bean,都可以写在字段上,或者方法上. 二. @Autowired属于Spring的:@Resource为JSR-250标准的注释,属于J ...

  6. Spring 注释 @Autowired 和@Resource 的区别

    Spring 注释 @Autowired 和@Resource 的区别 一. @Autowired和@Resource都可以用来装配bean,都可以写在字段上,或者方法上. 二. @Autowired ...

  7. Spring注解@Component、@Repository、@Service、@Controller,@Autowired、@Resource用法

    一.Spring定义bean,@Component.@Repository.@Service 和 @Controller Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥 ...

  8. @Autowired与 @Resource

    @Autowired, @Resource 1.注解类型: Autowired可用于构造器.属性.方法.注解 @Target({ElementType.CONSTRUCTOR, ElementType ...

  9. @Autowired 和 @Resource

    转自:Spring中@Autowired注解.@Resource注解的区别 Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resourc ...

随机推荐

  1. jquery插件需要明白的那些知识点

    1.jquery中$是神马?$.fn又是神马? 稍微有jquery经验的都知道在jquery中$等价于jQuery,在控制台一试便知: 我们在jquery(1.8.3)源码中也能找到下面代码: 其实在 ...

  2. Codeforces 801 A.Vicious Keyboard & Jxnu Group Programming Ladder Tournament 2017江西师大新生赛 L1-2.叶神的字符串

    A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  3. validate+jquery+ajax表单验证

    1.案例 1.1 Html form表单内容 <form class="cForm" id="cForm" method="post" ...

  4. CF988 D. Points and Powers of Two【hash/数学推理】

    [链接]:CF [题意]:从一堆数中选一个最大子集,使得任意两个数相减的绝对值都是2的幂. [分析]:首先很难的一点,需要想到子集最多只能有三个,四个及以上的子集一定不存在(可以证明).当有三个元素时 ...

  5. 洛谷——P2421 A-B数对(增强版)

    题目背景 woshiren在洛谷刷题,感觉第一题:求两数的和(A+B Problem)太无聊了,于是增加了一题:A-B Problem,难倒了一群小朋友,哈哈. 题目描述 给出N 个从小到大排好序的整 ...

  6. PL SQL 基础

    Oracle之PL/SQL学习笔记   自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整 ...

  7. 洛谷 P4173 残缺的字符串

    (不知道xjb KMP可不可以做的说) (假设下标都以0开头) 对于有一定偏移量的序列的 对应位置 匹配或者数值计算的题,这里是有一种套路的,就是把其中一个序列翻转过来,然后卷积一下,所得到的新序列C ...

  8. 【动态规划】【记忆化搜索】CODEVS 3415 最小和 CodeVS原创

    f(l,r,i)表示第i段截第l位到第r位时,当前已经得到的价格最小值,可以很显然地发现,这个是没有后效性的,因为对之后截得的段都不造成影响. 注意水彩笔数=1的特判. 递归枚举当前段的r求解(∵l是 ...

  9. 【函数式权值分块】【分块】bzoj3196 Tyvj 1730 二逼平衡树

    #include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define ...

  10. Exercise01_11

    public class Population{ public static void main(String[] args){ int sum,s; s=365*5*24*60*60; sum=31 ...