欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

Springboot3.4.x中的@Bean使用案例

2025年08月06日 Java
前言springboot3.4.x版本中的@bean新增一个字段defaultcandidate = false,当类型匹配时,基于 bean 的条件现在将忽略任何不是默认候选者的 beandefau

前言

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使用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!