Spring中的@Resource/@Autowired/@Primary/@Qualifier

Spring中的@Resource/@Autowired/@Primary/@Qualifier

@Resource

由java提供,位于包javax.annotation.Resource下,默认按照bean的名称注入,可以用在字段和set方法上。其有两个重要属性,name和type,spring会将name解析为bean的名称,将type解析为bean的类型。如果既不指定name,也不指定type,则将根据属性名称注入。

eg

java 复制代码
/**
* 既不指定name也不指定type,则根据属性名称user作为bean的名称去匹配
**/
@Resource
private User user;

@Autowired

由Spring提供,根据类型注入bean,属性required默认为true,表示目标bean必须存在,如果可以赋值为null,则将required设置为false。如果存在多个类型相同的目标bean,可以通过@Qualifier注解来指定目标bean。也可以通过@Primary注解来提高bean的优先级,

eg

java 复制代码
    @Autowired
    @Qualifier("userDao")
    private UserDao userDao;

	/***
	* 会创建两个bean,名称分别为columnMessageData1、columnMessageData2。如果要改变bean的名称,可以通过@Bean中的name属性修改
	*/

	@Configuration
    public class TestConfig {

    @Bean
    public ColumnMessageData columnMessageData1() {
        return new ColumnMessageData();
    }

    @Bean
    @Primary
    public ColumnMessageData columnMessageData2() {
        return new ColumnMessageData();
    }

}

 
相关推荐
漫霂几秒前
WebSocket入门
后端·websocket
笨蛋不要掉眼泪3 分钟前
Spring Cloud Gateway 核心篇:深入解析过滤器(Filter)机制与实战
java·服务器·网络·后端·微服务·gateway
笨蛋不要掉眼泪5 分钟前
Spring Cloud Gateway 扩展:全局跨域配置
java·分布式·微服务·架构·gateway
java1234_小锋13 分钟前
Java高频面试题:说说Redis的内存淘汰策略?
java·开发语言·redis
啦啦啦_999914 分钟前
SpringAI Alibaba(SAA) 之 SSE
spring
chentao10616 分钟前
Spring应用事件机制实践
后端
序安InToo17 分钟前
第4课|程序结构与编译流程
后端·操作系统·嵌入式
Hx_Ma1619 分钟前
播放器逻辑
java·开发语言
名字还在想19 分钟前
SpringBoot 自动装配-自定义Stater
后端
茶杯梦轩22 分钟前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
服务器·后端·面试