@autowire和@resource的区别

  1. autowire是通过类型来依赖注入
@Repository("dog1")
public class Dog {
    private String name;
}
public class Hello {
    private String name;
    @Autowired
    private Dog dog;
}

虽然@Repository将Dog注解为dog1,但是在Hello中是通过Dog类型来依赖注入的,所以和dog1没有关系

  1. @resource是通过名称来依赖注入
@Repository("dog1")
public class Dog {
    private String name;
}
public class Hello {
    private String name;
    @Resource
    private Dog dog;
}

此时@resource注解通过属性Dog的名称dog来找依赖,而Dog类在Bean中的名称是dog1,所以会失败
解决方法1:将private Dog dog改为private Dog dog1
解决方法2:将Dog类的Bean注解@Repository("dog1")改为@Repository("dog")

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容