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

}

 
相关推荐
企业数字化笔记13 分钟前
固定资产历史数据怎么导入系统?Excel模板、字段映射和数据校验
android·java·数据库·后端
西瓜太郎123418 分钟前
request_id 如何串起请求、路由、计费和日志
后端·python
troy12819 分钟前
Python 基础语法(一):变量、数据类型与运算符
java·服务器·python
by组态24 分钟前
Ricon组态系统通信配置指南
前端·后端·物联网
还是奇怪28 分钟前
OpenAI GPT-5.6 构建指南拆解:创业公司如何用模型选择与 Responses API 降低 Agent 成本
java·数据库·人工智能·gpt
可涵不会debug29 分钟前
LangChain 文本分割器详解:字符分割、Token 分割、硬约束递归分割实战
java·前端·数据库
sbjdhjd33 分钟前
ThinkPHP 5.0.10 缓存写入型 RCE 复盘:从手动搭建、换行绕过到源码单步验证 | 05
java·后端·安全·spring·网络安全·数据挖掘·php
LEE33 分钟前
Agent 的控制权,为什么正在回到模型手里?
前端·后端
沃夫上校33 分钟前
跨域这件事,其实浏览器在替你挡刀
前端·后端·nginx
用户2986985301435 分钟前
Python 将 Word 文档转换为图片的实践指南
后端·python·api