如何获取springboot中所有的bean

代码

复制代码
@Component
public class TestS {
    @Autowired
    private Map<String, Object> allBean = Maps.newConcurrentMap();

    public void testA(){
        System.out.println("测试下");
    }

}

这段代码是一个使用 Spring Framework 的依赖注入(DI)功能的示例。它用 @Autowired 注解将一个类型为 Map<String, Object> 的变量声明为一个由 Spring 容器管理的 bean,并初始化为一个线程安全的 ConcurrentMap 实现对象。

从代码中可以看出以下几点:

  1. @Autowired:这是 Spring Framework 提供的一个注解,用于自动装配依赖项。通过在成员变量上标记 @Autowired 来告诉 Spring 应该自动将相应的 bean 注入到该变量中。

  2. private Map<String, Object> allBean = Maps.newConcurrentMap();:这是一个私有成员变量 allBean 的声明,并使用 Guava 中的 Maps.newConcurrentMap() 方法初始化为一个线程安全的 ConcurrentMap 实现对象。

  3. Map<String, Object>:表示一个键值对集合,其中键的类型为 String,值的类型为 Object。在这里,allBean 是一个用于存储所有 bean 的映射。

  4. 在这个示例中,allBean 作为一个容器来存放通过 Spring 正确注册并由其进行管理的所有 bean。可以通过 allBean 变量来引用和使用这些 bean。

需要注意的是,如果要确保在类中能够正确注入 allBean 的实例,需要确保所在的类也被 Spring 管理并注入相应的依赖关系。在使用 @Autowired 注解之前,需要确保已经配置了 Spring 容器,并将相关的 bean 注册到容器中。

使用场景

假如某个service有不同的实现类,在实际业务使用时,可以根据这个map的key获取不同的service实现类进行对应的业务处理。

相关推荐
橙子家1 天前
Serilog 日志库简单实践(二):控制台与调试 Sinks(.net8)
后端
007php0071 天前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
想不明白的过度思考者1 天前
Rust——异步递归深度指南:从问题到解决方案
开发语言·后端·rust
西西学代码1 天前
Flutter---个人信息(5)---持久化存储
java·javascript·flutter
陈果然DeepVersion1 天前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(五)
java·spring boot·kafka·向量数据库·大厂面试·rag·ai智能客服
FAFU_kyp1 天前
Spring Boot 邮件发送系统 - 从零到精通教程
java·网络·spring boot
脚踏实地的大梦想家1 天前
【Docker】P2 Docker 命令:从Nginx部署到镜像分享的全流程指南
java·nginx·docker
ConardLi1 天前
Easy Dataset 已经突破 11.5K Star,这次又带来多项功能更新!
前端·javascript·后端
Blossom.1181 天前
把AI“编”进草垫:1KB决策树让宠物垫自己报「如厕记录」
java·人工智能·python·算法·决策树·机器学习·宠物
芒克芒克1 天前
ssm框架之Spring(上)
java·后端·spring