前言
springboot3.4.x版本中的@bean新增一个字段defaultcandidate = false,当类型匹配时,基于 bean 的条件现在将忽略任何不是默认候选者的 bean
defaultcandidate字段使用
1、 定义一个接口
public interface userservice {
void add();
}
2、定义一个接口
@slf4j
public class personserviceimpl implements userservice {
@override
public void add() {
log.info("测试1=============");
}
}
3、定义一个接口
@slf4j
public class userserviceimpl implements userservice {
@override
public void add() {
log.info("测试=============");
}
}
4、使用@bean
@configuration
public class userserviceconfig {
@bean
public userservice add() {
return new userserviceimpl();
}
@bean(defaultcandidate = false)
public userservice add1() {
return new personserviceimpl();
}
}
5、定义一个接口
@slf4j
@restcontroller
public class indexcontroller {
@autowired
private list<userservice> userservicelist;
@getmapping("/hello")
public string hello() {
log.info("数据为:{{}}", userservicelist);
return "success";
}
}
访问地址
http://ip:端口/hello
输出结果为

只实例化一个
总结
springboot3.4.x中的@bean中的defaultcandidate = false,如果存在相同类型的 bean,它就会被忽略
到此这篇关于springboot3.4.x中的@bean使用案例的文章就介绍到这了,更多相关springboot3.4.x @bean使用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论