SpringBoot(十六)@Autowired、@Inject、@Resourc…
2018-12-17 10:47:32来源:博客园 阅读 ()
@Resource,@Autowired,@Inject 这3种都是用来注入bean的,它们属于不同的程序中。详情参见下表:
v区别
ANNOTATION | PACKAGE | SOURCE | 作用域 | 实现方式 | 其它 |
---|---|---|---|---|---|
@AutoWired | org.springframework.bean.factory,Spring自带的方式 | Spring 2.5+ | 可以用在构造器、方法、属性、参数、注解上面 | 通过AutowireAnnotationBeanPostProcessor类实现依赖注入 | 注入可以根据名字/类型,可以设置required属性为false指定找不到相应bean时不抛异常 |
@Resource | javax.annotation,是JSR-250标准,JDK6以上自带,Spring版本要求2.5以上 | Java JSR-250 | 可以用在方法、属性、类上 | 通过CommonAnnotationBeanPostProcessor类实现依赖注入 | 与@AutoWired一致。但可以指定name属性来指定beanName,但如果name对应的bean不存在,则会抛出异常,且没有required属性 |
@Inject | javax.inject,是JSR-303标准,Spring版本3以上。需要导入外部依赖 | Java JSR-330 | 可以用在方法、属性、构造器上 | 通过AutowiredAnnotationBeanPostProcessor类实现依赖注入 | 与@AutoWired一致,区别在于@Inject没有required属性 |
v实现方式
2.1 @Inject
如下是@Inject
的使用,不加@Named
注解,需要配置与变量名一致即可。
@Inject @Named("mongo") private Mongo mongo;
2.2 @Autowired
@Autowired
有个属性为required
,可以配置为false,如果配置为false之后,当没有找到相应bean的时候,系统不会抛错。
@Autowired private MongoTemplate mongoTemplate;
2.3 @Resource
@Resource
一般会指定一个name属性,如下
@Resource(name = "testMapper") private TestMapper testMapper;
作 者:请叫我头头哥
出 处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:大杂烩
下一篇:Java的基本数据类型
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
- nacos~配置中心功能~springboot的支持 2020-06-10
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash