springboot自定义配置文件数量是变化的,属性相同,只是值不一样,怎样绑定到实体类?

author author     2023-04-12     439

关键词:

我的springboot项目有一个需求:
1.创建自定义配置文件并设置属性和值
2.自定义配置文件数量会根据生成环境增减,但文件中的属性不变,只是值不一样
网上许多加载配置文件并绑定实体类的案例,都是需要@PropertySource指定具体的配置文件。但是我的项目需要在打包后部署到生产环境,配置文件数量是变化的,应该怎样根据配置文件数量动态生成不同的实体类?

有一个思路,在主要的配置文件(比如:application.yml、bootstrap.yml)中设置好需要动态加载的配置文件。然后在启动时通过读取此配置自动去加载动态的配置文件,从而生成你需要的实体类。

大致效果,仅供参考,有更好的方案,欢迎指出:

效果图

代码

主配置文件

配置文件


完整代码:
@Component
public class LoadDynamicConfigure
@Value("$resourcesPath")
private String resourcesPath;

@Bean
public void loadConfig()
String[] yamlPathArray = resourcesPath.split(",");
for (String path : yamlPathArray)
YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
//yaml.setResources(new FileSystemResource("classpath:config/user.yml"));//File路径引入
yaml.setResources(new ClassPathResource(path));//class路径引入
//转换成实体类
ConfigBean bean = (ConfigBean) JSONObject.toBean(JSONObject.fromObject(yaml.getObject()), ConfigBean.class);
//打印,查看效果
System.out.println("测试读取配置---->" + path + " --> " + JSONObject.fromObject(bean).toString());



参考技术A 这种情况可能需要用到一些更通用的配置库
比如cfg4j就是其中一个比较好的

springboot的自定义配置

参考技术ASpringBoot免除了项目中大部分的手动配置,对一些特定情况,我们可以通过修改全局配置文件以适应具体生产环境,可以说,几乎所有的配置都可以写在application.properties文件中,SpringBoot会自动加载全局配置文件,从而... 查看详情

springboot自定义配置文件

 前言:如果你一点spring的基础没有,建议你不要学习springboot,至少先有一个spring的项目经验或者自己搭建过spring的项目再学习springboot,这样你会发现在spring中搞不懂的,在springboot中得到一些答案。springboot的原则是“约定... 查看详情

springboot自定义配置文件数据源

参考技术ASpringBoot支持动态的读取文件,留下的扩展接口org.springframework.boot.env.EnvironmentPostProcessor。这个接口是spring包下的,使用这个进行配置文件的集中管理,而不需要每个项目都去配置配置文件。这种方法也是springboot框架留... 查看详情

springboot之加载自定义配置文件

SpringBoot默认加载配置文件名为:application.properties和application.yml,如果需要使用自定义的配置文件,则通过@PropertySource注解指定。 JavaBean:packageorg.springboot.model;importlombok.Data;importorg.springframework.boot.context.pr 查看详情

springboot系列配置文件详解

...定义数据配置1.通过prefix2.通过@value注解获取 引言:Springboot有一个全局配置文件,这个配置文件默认是properties文件,就是application.properties文件,其实还有一种文件 查看详情

springboot自定义配置

如果我们使用IntelliJIDEA进行新建工程,那么可以在项目中发现一个属性文件application.yml 我们可以在这个文件中修改配置比如tomcat 默认的端口是8080我们可以修改端口为   8088 server:port:8088tomcat:uri-encoding:UTF-8ma... 查看详情

如何自定义配置源交给springboot管理

概述我们知道,在Springboot中可以通过xml或者@ImportResource来引入自己的配置文件,但是这里有个限制,必须是本地,而且格式只能是properties(或者yaml)。那么,如果我们有远程配置,如何把他引入进来来呢。如果有兴趣可以看另外... 查看详情

java框架之springboot三:springboot自定义配置一

java框架之Springboot三:SpringBoot自定义配置一私有化配置文件刚才我们介绍了在主配置文件汇中配置对应的文件,如果我们想要自定义配置文件该怎么处理呢?现在就要给大家介绍我们的@PropertySource注解。@PropertyS... 查看详情

在springboot下读取自定义properties配置文件的方法

SpringBoot工程默认读取application.properties配置文件。如果需要自定义properties文件,如何读取呢?一、在resource中新建.properties文件在resource目录下新建一个config文件夹,然后新建一个.properties文件放在该文件夹下。如图remote.properties... 查看详情

(c)springboot读取自定义配置文件时乱码解决办法

这是入门的第三天了,从简单的hellospring开始,已经慢慢接近web的样子。接下来当然是读取简单的对象属性了。于是按照网上各位大神教的,简单写了个controller,如上一篇,其他配置不需要做任何改动。@RestControllerpublicclassUserCon... 查看详情

springboot获取配置文件的自定义参数

1、在application.properties中自定义参数spring.datasource.driverClassName=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8spring.datasource.username=rootsprin 查看详情

210630:springboot自动配置-自定义start

参考技术ASpringBoot关于自动配置的源码在spring-boot-autoconfigure-x.x.x.x.jar中:当然,自动配置原理的相关描述,官方文档貌似是没有提及。不过我们不难猜出,SpringBoot的启动类上有一个@SpringBootApplication注解,这个注解是SpringBoot项目... 查看详情

springboot日志配置文件不生效

SpringBoot日志配置文件不生效是因为配置文件重复!!!SpringBoot项目中默认有一份日志配置文件,项目启动时先读取到了默认日志配置文件,没有读取resource目录中的配置文件,需要自定义日志信息的话需要在Springboot配置文件中... 查看详情

springboot分环境导出自定义xml配置

背景介绍:   由于新的springboot项目需要使用老的jar包,老的jar包的配置是用xml方式配置的,而且开发development、测试test、集成off、正式production环境都会有所不同,这种时候我们就需要让springboot分环境加载不同的xml配... 查看详情

springboot自定义静态资源映射

...不同demo的序号按文件修改即可,demo01.html内容如下:1、SpringBoot项目静态资源默认访问路径2、在IDEA中对应的路径访问方法:http://localhost:8080/demo01.html,如下:3、优先级顺序Ⅰclasspath:/META-INF/resources→Ⅱclasspath:/resources→Ⅲclasspath... 查看详情

springboot-日志配置(超详细)

SpringBoot-日志配置(超详细)更新日志:20170810更新通过application.yml传递参数到logback中。 SpringBoot-日志配置超详细默认日志Logback添加日志依赖控制台输出文件输出级别控制自定义日志配置根节点包含的属性子节点一root子节点二c... 查看详情

自定义jar配置文件问题?

java开发的简单工具类jar包,没有spring等任何框架,在springboot中引入使用,怎样灵活读取springboot的配置文件?或者说在以下情况下怎样都能读取到spingboot的配置文件:1、application.properties;2、application.yml;3、springboot打成jar包启... 查看详情

springboot配置文件位置

Springboot的Application.properties配置文件可以是以下几个地方:classpath:/,classpath:/config/,file:./,file:./config/.但要注意的是加载的顺序是倒过来的:file:./config/file:./classpath:/config/classpath:/可以通过spring.config.location增加自定义的 查看详情