前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot注入Map<String,Bean>

SpringBoot注入Map<String,Bean>

作者头像
写一点笔记
发布2022-08-11 17:00:01
6210
发布2022-08-11 17:00:01
举报
文章被收录于专栏:程序员备忘录程序员备忘录

为什么突然写这样一篇文章呐,因为作者在看项目的时候发现老代码中的多数据源用的很六,而多数据的配置基础配置信息存储在Map数据结构中,也就是本次文章的标题。在看代码中,作者觉的人家这种想法非常好,尤其像多数据源,或者相同相同类,不同的配置值具有不同功能的情况。我们可以通过不同的名称将我们实例化的bean注入到springIoc容器中,这样就极大的方便了我们代码的扩展,也让我们的配置文件更加具有层次性。优点就说这么多,以后有时间了再利用这种姿势给大家演示一下如何做同类的不同实现的管理和包装。这里通过demo来演示一下SpringBoot如何注入一个Map<String,Bean>.

代码语言:javascript
复制
public class MyBean {

    private String name;

    private String config;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getConfig() {
        return config;
    }

    public void setConfig(String config) {
        this.config = config;
    }

    @Override
    public String toString() {
        return "MyBean{" +
                "name='" + name + '\'' +
                ", config='" + config + '\'' +
                '}';
    }
}

配置管理

代码语言:javascript
复制


@Configuration
@ConfigurationProperties(prefix = "scaffold.tian")
public class MyConfig {

    private Map, MyBean> client;

    public MyConfig() {
    }

    public Map, MyBean> getClient() {
        return client;
    }

    public void setClient(Map, MyBean> client) {
        this.client = client;
    }

    @Override
    public String toString() {
        return "MyConfig{" +
                "client=" + client +
                '}';
    }
    }

配置文件

代码语言:javascript
复制
scaffold.tian.client.name.config=tianjingle
scaffold.tian.client.wang.config=wang
scaffold.tian.client.li.config=li

测试代码

代码语言:javascript
复制
@Autowired
private MyConfig myConfig;

System.out.println(myConfig.toString());

测试结果

当我们将需要的基础信息配置管理起来了之后,我们就可以随意的生产不同策略的上层业务类了。是不是感觉这种姿势优点帅?好了,本次文章就到这里!

晚安~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 写点笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档