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

}

 
相关推荐
回家路上绕了弯5 分钟前
Claude Code Agent Team 全解析:AI 集群协作,重构代码开发新范式
人工智能·分布式·后端
YDS82911 分钟前
SpringCloud —— Elasticsearch的DSL查询
java·elasticsearch·搜索引擎·spring cloud
亚马逊云开发者17 分钟前
你的 AI Agent 在裸奔吗?四层防护方案,从权限到审计一次讲透
java
意疏28 分钟前
openJiuwen实战:用AsyncCallbackFramework为Agent增强器添加可观测性
java·服务器·前端
马士兵教育29 分钟前
2026年IT行业基本预测!计算机专业学生就业编程语言Java/C/C++/Python该如何选择?
java·开发语言·c++·人工智能·python·面试·职场和发展
Book思议-38 分钟前
顺序表和链表核心差异与优缺点详解
java·数据结构·链表
树獭叔叔1 小时前
扩散模型完全指南:从直觉到数学的深度解析
后端·aigc·openai
毕设源码_严学姐1 小时前
计算机毕业设计springboot心理健康辅导系统 高校学生心灵关怀服务平台的设计与实现 校园智慧心理服务系统的设计与实现
spring boot·后端·课程设计
程序员牛奶1 小时前
如何使用Redis Set实现简单的抽奖系统?
后端
程序员海军1 小时前
深度测评:在微信里直接操控 OpenClaw
人工智能·后端