springboot读取配置文件中的集合对象
配置文件如下:
food-category.properties
static-food-categories[0].static-food-category-value.id=1
static-food-categories[0].static-food-category-value.key=MEAT
static-food-categories[0].static-food-category-value.name=肉类
static-food-categories[0].sub-categories[0].id=2
static-food-categories[0].sub-categories[0].key=PORK
static-food-categories[0].sub-categories[0].name=猪肉
static-food-categories[0].sub-categories[1].id=3
static-food-categories[0].sub-categories[1].key=BEEF
static-food-categories[0].sub-categories[1].name=牛肉
static-food-categories[1].static-food-category-value.id=4
static-food-categories[1].static-food-category-value.key=FRUITS
static-food-categories[1].static-food-category-value.name=水果
static-food-categories[1].sub-categories[0].id=5
static-food-categories[1].sub-categories[0].key=APPLE
static-food-categories[1].sub-categories[0].name=苹果
static-food-categories[1].sub-categories[1].id=6
static-food-categories[1].sub-categories[1].key=ORANGE
static-food-categories[1].sub-categories[1].name=橘子
不难看出,配置文件中是多个对象集合,我们只有要建立对应的类进行读取即可。
1.创建对应的实体类,建立映射并读取配置配置文件中的信息,使用时通过@Autowired注解注入即可
import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; import java.util.List; /** * <p> * 读取food-category.properties配置文件中的类型信息 * </p> * * @className FoodCategory * @author Sue * @create 2020/9/30 **/ @Data @NoArgsConstructor @Component @ConfigurationProperties(prefix = "") //不使用这个注解默认读取application.yml @PropertySource(value = "classpath:food-category.properties") public class FoodCategory { private List<StaticFoodCategories> staticFoodCategories; @Data static class StaticFoodCategories { private StaticFoodCategoryValue staticFoodCategoryValue; private List<SubCategories> subCategories; } @Data static class StaticFoodCategoryValue { private String id; private String key; private String name; } @Data static class SubCategories { private String id; private String key; private String name; } }
2.测试
@RunWith(SpringRunner.class) @SpringBootTest public class MyApplicationTests { @Autowired FoodCategory foodCategory; @Test public void contextLoads() { System.out.println(foodCategory); } }
本博客文章均已测试验证,欢迎评论、交流、点赞。
部分文章来源于网络,如有侵权请联系删除。
转载请注明原文链接:https://www.cnblogs.com/sueyyyy/p/13753498.html
分类:
JAVA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2019-09-30 springboot文件上传报错
2019-09-30 WebMvcConfigurer 与 WebMvcConfigurationSupport避坑指南
2019-09-30 WebMvcConfigurerAdapter详解和过时后的替代方案