@Autowired 和 @Resource的区别
在 Spring 框架中 Autowired 和 Resource 都是⽤于依赖注⼊DI的注解但它们的来源、注⼊逻辑和使⽤场景存在明显差异。以下是两者的核⼼区别Autowired 属于 Spring 框架原⽣注解位于org.springframework.beans.factory.annotati on.Autowired 包下。 依赖 Spring框架只能在 Spring 容器环境中使⽤。Resource 属于 JSR-250Java EE 标准注解位于javax.annotation.Resource 包下。 不依赖 Spring可在 Java EE 容器如Tomcat、WildFly或⽀持 JSR-250 规范的框架中 使⽤具有⼀定的跨容器兼容性。Autowired 默认按类型Type匹配 当容器中存在唯⼀匹配类型的 Bean时直接注⼊。 当存在多个同类型Bean如接⼝的多个实现类时会抛出 NoUniqueBeanDefinitionAutowired当容器中存在唯一匹配类型的Bean时直接注入 当存在多个同类型Bean(如接口的多个实现类时会抛出NoUniqueBeanDefinitionException异常需配合Qualifier注解指定Bean名称按名称匹配支持构造器、字段、方法参数的注入Resource默认按名称匹配 若未指定name属性则默认使用字段名或setter方法名作为Bean名称进行匹配。 若指定name属性则直接按名称查找Bean;若名称不存在再尝试按类型匹配作为fallback).只要用于字段setter方法的注入不支持构造器注入。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2440743.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!