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,它就会被忽略

相关推荐
SimonKing13 分钟前
无需重启!动态修改日志级别的神技,运维开发都哭了
java·后端·程序员
架构精进之路32 分钟前
多智能体系统不是银弹
后端·架构·aigc
杨杨杨大侠37 分钟前
第3篇:配置管理的艺术 - 让框架更灵活
java·spring·log4j
涡能增压发动积1 小时前
MySQL数据库为何逐渐黯淡,PostgreSQL为何能新王登基
人工智能·后端
架构精进之路2 小时前
多智能体系统架构解析
后端·架构·ai编程
Java中文社群2 小时前
重磅!Ollama发布UI界面,告别命令窗口!
java·人工智能·后端
程序员清风2 小时前
程序员代码有Bug别怕,人生亦是如此!
java·后端·面试
Java码农田2 小时前
springmvc源码分析全体流程图
spring·源码
就是帅我不改2 小时前
告别996!高可用低耦合架构揭秘:SpringBoot + RabbitMQ 让订单系统不再崩
java·后端·面试