最开始做项目时,依赖注入用到的注解都是 J2EE 的 @Resource,那时还根本不了解 spring 有 @Autowired。心塞。

前两天想到估计有很多刚开始学习 java 的童鞋可能对这两个注解并没有注意区分,那我就在这总结一下吧。当然很多都是 copy 自网络。

相同点:

  1. 都是用来装配 Bean,都可以写在字段上,或者写在 setter 方法上。

不同点:

  @Autowired

  1. 默认按类型装配。

  2. 默认情况下必须要求对象存在,如果允许 Null 值,可是设置 requried 属性为 false 。如下:

@Autowired(required = false) 

  3. 如果想改为按名称匹配,需要结合 @Qualifier 注解使用。如下:

@Autowired
@Qualifier("baseDao")
private BaseDao baseDao;
  
  @Resource

  1. 默认按照名称装配,且默认按字段名查找。

  2. 如指定 name 属性,则按照指定的 name 值查找。如下:

@Resource("dao")
private BaseDao baseDao;

  3. 在不指定 name 值的前提下,按名称搜不到匹配的 bean 时,会自动改为按类型匹配。

spring 框架的 @Autowired 和 @Resource 两种注解的区别的更多相关文章

  1. Spring中@Autowired和@Resource两种自动装配的方法

    @Autowired 默认按bean类型查找并注入,若此时有多个相同类型的bean时,按bean name查找则为:@Autowired @Qulifer(value=”bean名称”). @Reso ...

  2. Spring加载properties文件的两种方式

    在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可, ...

  3. Spring Boot定义系统启动任务的两种方式

    Spring Boot定义系统启动任务的两种方式 概述 如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web ...

  4. Java中serialVersionUID的解释及两种生成方式的区别(转载)

    转载自:http://blog.csdn.net/xuanxiaochuan/article/details/25052057 serialVersionUID作用:        序列化时为了保持版 ...

  5. jsp中两种include的区别【转】

    引用文章:http://www.ibm.com/developerworks/cn/java/j-jsp04293/ http://www.cnblogs.com/lazycoding/archive ...

  6. UIImage两种初始化的区别

    UIImage可以通过以下两种方式进行初始化: //第一种初始化方式:[注意使用这种初始化的时候如果是png格式的可以不给后缀名,根据屏幕的的分辨率去匹配图片] UIImage *image = [U ...

  7. PHP中数组合并的两种方法及区别介绍

    PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...

  8. Android小项目之九 两种上下文的区别

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  9. ACE_linux:Reactor与Proactor两种模式的区别

    一.概念: Reactor与Proactor两种模式的区别.这里我们只关注read操作,因为write操作也是差不多的.下面是Reactor的做法: 某个事件处理器宣称它对某个socket上的读事件很 ...

随机推荐

  1. javaMail邮件发送的简单实现

    package com.test.mail; import java.util.Properties; import javax.mail.Message; import javax.mail.Ses ...

  2. 转发一个javascript的编码规范

    google出品:http://chajn.org/jsguide/javascriptguide.html

  3. javaWEB总结(16):jsp错误页面的处理

    前言 网站上线后,jsp页面上有时会出现不友好的错误信息,我们需要展示给用户更加友好的页面.这时候要用到page标签的errorPage和isErrorPage. errorPage 指定当前页面出现 ...

  4. linux中fork()函数详解(转)

    转自:http://blog.csdn.net/jason314/article/details/5640969 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过 ...

  5. 版本控制器:SVN

    版本控制器:SVN 开发中的实际问题 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流--需求之一:备份! 这个项目中需要一个很复杂的功 ...

  6. 通用mapper的使用

    通用mapper的使用 导入依赖 <dependency> <groupId>com.github.abel533</groupId> <artifactId ...

  7. 《Windows编程循序渐进》——基本控件

    按钮控件的介绍 界面设计如下:

  8. 关于ActionScript在Java调用上的一些原理

    在公司遇到了ActionScript调用Java的需求,所以大概了解了一下: 一般基本是分成了三块,本身flash的项目,ActionScript的库,Java的库 通信方式一般有两种: 一.Acti ...

  9. java 邮件收发 (只能输入英文,中文需要转码)

    //发件 package com.sun.mail;import java.io.UnsupportedEncodingException;import java.util.Properties;im ...

  10. 浙大pat 1029题解

    1029. Median (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given an incre ...