码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot(十六)@Autowired、@Inject、@Resource

时间:2018-12-17 02:10:53      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:tor   外部   tom   lock   javadoc   log   actor   post   auto   

@Resource,@Autowired,@Inject 这3种都是用来注入bean的,它们属于不同的程序中。详情参见下表:

v区别

ANNOTATIONPACKAGESOURCE作用域实现方式其它
@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;

SpringBoot(十六)@Autowired、@Inject、@Resource

标签:tor   外部   tom   lock   javadoc   log   actor   post   auto   

原文地址:https://www.cnblogs.com/toutou/p/9907381.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!