我有一个包含以下内容的application.properties文件。
server.name
server.id
server.ipadd我正在使用下面的注释在configProperties.java中读取
@ConfigurationProperties(prefix = "server")
private String name;
private String ipadd;现在我已经包括了额外的财产。
server.client.type
server.client.location想要读这些新的属性。如何在同一个configProperties.java文件中读取这些文件?寻找类似以下格式,其中包括多个前缀,我知道这些是无效的。
@ConfigurationProperties(prefix = "server", prefix = "server.client")
or
@ConfigurationProperties(prefix = "server")
@ConfigurationProperties(prefix = "server.client")发布于 2020-09-15 08:23:16
您需要创建一个新的类,如
public class ClientProperties {
private String type;
private String location;
}在以服务器为前缀的配置中,添加它。
private String name;
private String ipadd;
private ClientProperties client;发布于 2021-04-28 21:07:59
下面是你想要做的事情的一个例子。
@Configuration
public class MultipleConfigPrefixExample {
@Bean
@ConfigurationProperties(prefix = "config.first.part")
public FirstPart getFirstPart(){
return new FirstPart();
}
@Bean
@ConfigurationProperties(prefix = "info.another.part")
public AnotherPart getAnotherPart(){
return new AnotherPart();
}
@Getter
@Setter
public static class FirstPart {
private String element1;
private String element2;
}
@Getter
@Setter
public static class AnotherPart {
private String element1;
private String element2;
}
}注释@Getter @Setter来自lombok。
发布于 2020-12-31 20:09:57
回答你的问题
configProperties.getClientProperties().getLocation()
我不得不处理类似的事情,您可以将这个调用封装在ConfigProperties类中,如下所示:
@ConfigurationProperties
public ConfigProperties{
private String name;
private String ipadd;
private ClientProperties client;
public static class ClientProperties {
private String type;
private String location;
}
public String getType(){return client.getType();}
}因此,您的内部结构是正确的,但您可以从顶级类访问属性。在我的例子中,我使用的是生成的git属性,这些属性无法重新格式化,这比重新生成文件更容易。
https://stackoverflow.com/questions/63897490
复制相似问题