Springboot3.4.x中的@Bean使用

前言

Springboot3.4.x版本中的@Bean新增一个字段defaultCandidate = false,当类型匹配时,基于 Bean 的条件现在将忽略任何不是默认候选者的 Bean

defaultCandidate字段使用

1、 定义一个接口

csharp 复制代码
public interface UserService {

    void add();
}

2、定义一个接口

typescript 复制代码
@Slf4j
public class PersonServiceImpl implements UserService {
    @Override
    public void add() {
        log.info("测试1=============");
    }
}

3、定义一个接口

typescript 复制代码
@Slf4j
public class UserServiceImpl implements UserService {
    @Override
    public void add() {
        log.info("测试=============");
    }
}

4、使用@Bean

typescript 复制代码
@Configuration
public class UserServiceConfig {

    @Bean
    public UserService add() {
        return new UserServiceImpl();
    }

    @Bean(defaultCandidate = false)
    public UserService add1() {
        return new PersonServiceImpl();
    }
}

5、定义一个接口

less 复制代码
@Slf4j
@RestController
public class IndexController {

    @Autowired
    private List<UserService> userServiceList;

    @GetMapping("/hello")
    public String hello() {
        log.info("数据为:{{}}", userServiceList);
        return "success";
    }
}

访问地址

bash 复制代码
 http://ip:端口/hello

输出结果为

只实例化一个

总结

Springboot3.4.x中的@Bean中的defaultCandidate = false,如果存在相同类型的 bean,它就会被忽略

相关推荐
勇者无畏40420 分钟前
基于 Spring AI Alibaba 搭建 Text-To-SQL 智能系统(初始化)
java·后端·spring
BingoGo23 分钟前
深入理解 Laravel Middleware:完整指南
后端·laravel
随风飘的云25 分钟前
kafka消息中间件核心知识点详解总结
后端
回家路上绕了弯29 分钟前
海量日志分析:一天内最大在线人数与最长持续时间计算方案
后端·微服务
大象席地抽烟41 分钟前
Spring AI RAG 体验项目
后端
SimonKing1 小时前
百度统计、Google Analytics平替开源网站分析工具:Umami
java·后端·程序员
欲买桂花同载酒1 小时前
postgis空间坐标系实践
后端
码事漫谈1 小时前
智能运维与资源优化:金仓数据库助力企业年省百万运维成本
后端
苏三说技术2 小时前
5种分布式配置中心
后端
武子康2 小时前
大数据-148 Flink 写入 Kudu 实战:自定义 Sink 全流程(Flink 1.11/Kudu 1.17/Java 11)
大数据·后端·nosql