如何从 SpringBoot 中的属性文件加载嵌套键值对
How to load nested key value pairs from a properties file in SpringBoot
有没有更好的方法来使用 Spring/Spring Boot 来实现以键值对作为值的属性文件?
我想创建一个 属性 文件,其中的键包含一对键值对作为值。
我尝试了以下实现:-
属性文件:-
Fiat=model:pet,year:1996
Honda=model:dis,year:2000
我下面 class 试图读取属性文件。
@Component
@PropertySources(@PropertySource("classpath:sample.properties"))
public class PropertiesExtractor {
@Autowired
private Environment env;
public String pullValue(String node) {
String value = env.getProperty(node);
System.out.println(value);//for Fiat, i get syso as **model:pet,year:1996**
}
}
我需要使用 java 解析这些值,以获得单独的值。这是实现这一目标的唯一出路吗?
有没有更好的方法在 Java 中使用嵌套的 属性 文件?
创建一个 Car
对象或带有 model
和 year
属性 的对象。然后创建这样的东西
@ConfigurationProperties("foo")
public class CarProperties {
private Map<String,Car> cars;
// Getters/Setters
}
在您的主要配置中添加添加 @EnableConfigurationProperties(CarProperties.class)
class。
然后您可以按如下方式注入该配置:
foo.cars.Fiat.model=pet
foo.cars.Fiat.year=1996
foo.cars.Honda.model=dis
foo.cars.Honda.year=2000
文档中有更多信息。
您也可以将 yaml 文件与 spring 一起使用:
这样,您可以使用
Fiat:
model: pet
year: 1996
Honda:
model: dis
year: 2000
我们也可以设置数据类型吗
#game properties
game.maxNumber = 100;
game.guessCount = 10;
这是我的 属性 文件,我需要 int 格式的值,但默认情况下,它给出的是字符串
有没有更好的方法来使用 Spring/Spring Boot 来实现以键值对作为值的属性文件? 我想创建一个 属性 文件,其中的键包含一对键值对作为值。
我尝试了以下实现:-
属性文件:-
Fiat=model:pet,year:1996
Honda=model:dis,year:2000
我下面 class 试图读取属性文件。
@Component
@PropertySources(@PropertySource("classpath:sample.properties"))
public class PropertiesExtractor {
@Autowired
private Environment env;
public String pullValue(String node) {
String value = env.getProperty(node);
System.out.println(value);//for Fiat, i get syso as **model:pet,year:1996**
}
}
我需要使用 java 解析这些值,以获得单独的值。这是实现这一目标的唯一出路吗?
有没有更好的方法在 Java 中使用嵌套的 属性 文件?
创建一个 Car
对象或带有 model
和 year
属性 的对象。然后创建这样的东西
@ConfigurationProperties("foo")
public class CarProperties {
private Map<String,Car> cars;
// Getters/Setters
}
在您的主要配置中添加添加 @EnableConfigurationProperties(CarProperties.class)
class。
然后您可以按如下方式注入该配置:
foo.cars.Fiat.model=pet
foo.cars.Fiat.year=1996
foo.cars.Honda.model=dis
foo.cars.Honda.year=2000
文档中有更多信息。
您也可以将 yaml 文件与 spring 一起使用:
这样,您可以使用
Fiat:
model: pet
year: 1996
Honda:
model: dis
year: 2000
我们也可以设置数据类型吗
#game properties
game.maxNumber = 100;
game.guessCount = 10;
这是我的 属性 文件,我需要 int 格式的值,但默认情况下,它给出的是字符串