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);
    }
}
复制代码

 

  

posted @   少说点话  阅读(2728)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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详解和过时后的替代方案
网站运行:7年51天17时24分16秒
点击右上角即可分享
微信分享提示