The difference between @Autowired and @ResourceAutowired (由Spring提供)Resource(由J2EE提供)结论参考地址

Autowired (由Spring提供)

  1. @Autowired 与 @Resource 都可以通过注入 Field 或 setter 装配bean,但 @Autowired 可以额外装配 构造器、多参数方法,@Resource 只能装配 单参数方法。
  2. @Autowired 默认根据 类型 装配,并且默认情况下该对象必须存在。如果你想允许空值,则必须明确标注 @Autowired(required=false)。除了按类型装配外,也可以配合 @Qualifier 根据 名称 装配。

Resource(由J2EE提供)

  1. @Resource 默认根据 名称装配,允许在注解中直接指定名称。当你注解时未明确指定名称,则会先按照默认名称进行检索装配。若检索失败,则会依据 类型 进行装配。

结论

我更偏向于使用 @Resource 注解在 Field上,这样可以省略 setter方法。 其次,这个注解由 J2EE 提供,可以在 J2EE 环境下通用,而 @Autowired 只能在 Spring下使用。 最后,统一使用 @Resource 会让代码更优雅。

参考地址

http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-autowired-annotation http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-resource-annotation http://forum.spring.io/forum/spring-projects/container/40092-autowired-and-resource-difference

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java修行之道

如何在SpringMVC中使用REST风格的url

2025
来自专栏源码之家

终于解决WIN7共享经常连不上的问题了。

1492
来自专栏Java学习123

调试Spring Boot项目时跳转到exitCurrentThread的问题

2907
来自专栏Java进阶干货

SpringMVC工作流程

DispatcherServlet:前端控制器,是 SpringMVC 工作流程的中心,负责调用其他组件,在系统启动时就加载该类。

2.1K3
来自专栏一个会写诗的程序员的博客

第9章 Spring Boot开发者工具第9章 Spring Boot开发者工具

Spring Boot Maven Plugin,提供了使用Maven构建Spring Boot 工程的支持。我们可以用这个插件完成打包功能。支持打可执行jar...

2062
来自专栏一枝花算不算浪漫

[Java面试六]SpringMVC总结以及在面试中的一些问题.

36310
来自专栏码匠的流水账

命令行一键切换java版本的几种方式

java现在版本发布相对以前比较频繁了,java9还没来得及用,java10就出来了,2018年9月份java11也要来了,于是就有需求在笔记本电脑上装多个版本...

2811
来自专栏钟绍威的专栏

SpringMVC基本使用关于DisptacherServlet关于ServletContainerInitializer最简单配置接收参数路径变量表单变量

springMVC是一个MVC框架,他控制着请求相应的整个流程,从请求一进入到应用服务器到相应离开,都离不开mvc框架 请求在应用服务器中 先说说请求相应在应用...

4026
来自专栏一个会写诗的程序员的博客

《Spring Boot极简教程》第4章 零XML配置的Spring Boot Application小结

Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件、YAML 文件、环境变量和命令行参数来定义优先级不同...

822
来自专栏微信公众号:Java团长

教你理清SpringBoot与SpringMVC的关系

spring boot就是一个大框架里面包含了许许多多的东西,其中spring就是最核心的内容之一,当然就包含spring mvc。spring mvc 是只是...

2034

扫码关注云+社区

领取腾讯云代金券