java - @Resource作用
本文介绍了java - @Resource作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
@Resource
public interface MyObjectMapperExt extends MyObjectMapper {
// TODO
}
为什么在这个地方不加@Resource的时候,在另外一个地方注入MyObjectMapperExt会失败?
@Autowired
private MyObjectMapperExt myObjectMapperExt;
会注入失败,提示无法注入。是什么原因?而且@Resource是mybatis自动生成的。
解决方案
/**
* The Resource annotation marks a resource that is needed
* by the application. This annotation may be applied to an
* application component class, or to fields or methods of the
* component class. When the annotation is applied to a
* field or method, the container will inject an instance
* of the requested resource into the application component
* when the component is initialized. If the annotation is
* applied to the component class, the annotation declares a
* resource that the application will look up at runtime. <p>
*
* Even though this annotation is not marked Inherited, deployment
* tools are required to examine all superclasses of any component
* class to discover all uses of this annotation in all superclasses.
* All such annotation instances specify resources that are needed
* by the application component. Note that this annotation may
* appear on private fields and methods of superclasses; the container
* is required to perform injection in these cases as well.
*
* @since Common Annotations 1.0
*/
@Target({TYPE, FIELD, METHOD})
@Retention(RUNTIME)
这是@Resource
注解的介绍,@Resource
用在字段或者方法上的时候,Spring会从容器里面寻找需要的类型Bean,@Resource
用在类上的时候,Spring会把当前类作为资源放入Spring容器。
@Autowired
注解表示让Spring容器自动注入这个bean,@Resource
表示把当前注解的类交给Spring容器管理,你不使用@Resource
注解,Spring容器就不会加载这个类型的bean,需要注入的时候自然就报错了
你把@Resource
用在interface上面也是有问题的吧 应该放在实现类上面
这篇关于java - @Resource作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文