配置文件以下:java
food-category.propertiesspring
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=橘子
不難看出,配置文件中是多個對象集合,咱們只有要創建對應的類進行讀取便可。app
1.建立對應的實體類,創建映射並讀取配置配置文件中的信息,使用時經過@Autowired註解注入便可ide
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); } }