关闭

Spring注解@Autowired与@Resource的区别

标签: AutowiredResourceSpring注解
337人阅读 评论(0) 收藏 举报
分类:

1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。 
2、@Autowired默认按类型装配(这个注解是属于spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下: 

Java代码  收藏代码
  1. @Autowired() 
  2. @Qualifier("baseDao")     
  3. private BaseDao baseDao;    

 3、@Resource(这个注解属于J2EE的),默认安照名称进行装配,名称可以通过name属性进行指定, 
如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。

Java代码  收藏代码
  1. @Resource(name="baseDao")     
  2. private BaseDao baseDao;    

 
我喜欢用 @Resource注解在字段上,且这个注解是属于J2EE的,减少了与spring的耦合。最重要的这样代码看起就比较优雅。


以上转载自:http://bhdweb.iteye.com/blog/1663907





我补充一下,@Resource其实也可以指定类型的,比如

	@Resource(type = InnerSignCheckProcess.class)
	private InnerSignCheckProcess InnerSignCheck;
        @Service
        public class InnerSignCheckProcess

所以总的来说@Autowired与@Resource功能差不多的。只是@Autowired属于spring的注解org.springframework.beans.factory.annotation.Autowired,@Resource则属于J2EE的注解javax.annotation.Resource

1
0
查看评论

@Resource与@Autowired注解的区别

一、写本博文的原因 年初刚加入到现在的项目时,在使用注解时我用的@Resource。后来,同事:你怎么使用@Resource注解?我:使用它有错吗?同事:没错,但是现在都使用@Autowired。我:我研究一下。 在大学,学习J2EE实训时一直使用的是@Resource注解,后来我就养成习惯了。现...
  • wangzuojia001
  • wangzuojia001
  • 2017-01-10 16:21
  • 1523

Spring @Resource、@Autowired、@Qualifier的注解注入及区别

spring2.5提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖。在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入。虽然@Resource和@Autowired都可以来完成注入依赖,但它们之间是有区 别的。首先来看...
  • Baple
  • Baple
  • 2014-01-05 21:39
  • 104798

spring中自动注解配置以及@Resource和@Autowired的区别

1.spring中自动注解需要配置标签配置完这个标签后,spring就会去自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描到文件中带有@Service,@Component,@Repository,@Controller等这些注解的类,则把这些类注册为bean文...
  • u011217058
  • u011217058
  • 2017-03-28 16:51
  • 403

注解@autowired与@resources的区别

注解
  • u011305680
  • u011305680
  • 2017-06-19 18:04
  • 522

@Autowired注解与@Resource注解的区别

@Autowired注解与@Resource注解的区别
  • LittleSkey
  • LittleSkey
  • 2016-09-22 11:12
  • 561

Spring中@Autowired注解,@Resource注解和xml default-autowire区别

String resourceName = resource.name(); this.isDefaultName = !StringUtils.hasLength(resourceName); if (this.isDefaultName) { resourceName = this.me...
  • jackyechina
  • jackyechina
  • 2016-09-09 11:31
  • 1894

Spring中@Resource与@Autowired与@Component注解的总结

在java代码中使用@Autowired或@Resource注解方式进行装配,这两个注解的区别是:@Autowired 默认按类型装配,@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。     @Autowired  ...
  • wxw520zdh
  • wxw520zdh
  • 2016-10-04 14:26
  • 834

Spring的@Autowired注解、@Resource注解和@Service注解

什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点: 1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低 2、在开...
  • u012581453
  • u012581453
  • 2016-12-17 17:11
  • 2110

Springmvc中@Autowired注解与@Resource注解的区别

Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。   @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@R...
  • Cherry_tly
  • Cherry_tly
  • 2016-03-24 10:32
  • 4117

Spring Resource、Autowired、Qualifier的注解注入及区别

 说明和区别 spring4.1 提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖。在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入。虽然@Resource和@Autowired都可以来完成注入依赖,但它们之...
  • fclwd
  • fclwd
  • 2015-02-27 17:05
  • 4825
    个人资料
    • 访问:212630次
    • 积分:3619
    • 等级:
    • 排名:第10749名
    • 原创:151篇
    • 转载:30篇
    • 译文:0篇
    • 评论:30条
    最新评论