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();
    }

}

 
相关推荐
不能放弃治疗2 小时前
单 Agent 实现模式
后端
IT_陈寒4 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
小bo波5 小时前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制
fliter5 小时前
最后一块拼图:用 bitvec 构造 IPv4 包,真正做出自己的 Ping
后端
fliter6 小时前
用 Rust 解析并生成 ICMP 包:checksum、nom 与 cookie-factory
后端
蝎子莱莱爱打怪6 小时前
XZLL-IM干货系列 03|消息 ID 设计:一个 UUID 搞不定的事,我用两个 ID 解决了
后端·面试·开源
fliter6 小时前
从 panic 到 Result:用 Rust 重新整理一个 ping 项目的错误处理
后端
森蓝情丶7 小时前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端
JensCS猿7 小时前
从 Spring Boot 回看 SSM 框架:手动挡与自动挡的驾驶哲学
后端
爱勇宝7 小时前
干了近 8 年,一夜之间被裁:AI 时代,程序员最该害怕的不是 AI
前端·后端·程序员