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 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪2 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
Flynt2 小时前
我把微信运动的排行榜和定点推送复刻了一遍:100万次步数更新只要4秒,坑在别处
redis·后端·性能优化
文丑颜不良啊3 小时前
LeetCode876~900题目解析
java·leetcode
aloha_7894 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
CarIise4 小时前
SpringMVC 异常处理与拦截器
大数据·spring
知守观4 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅4 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
_孤傲_4 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
Wang's Blog5 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友