我试图在springboot应用程序中加载一次属性。
实际上,我已经创建了一个类来执行此操作:
@Configuration
@PropertySource(value = { "classpath:parameters.properties", "classpath:iot.properties" })
public class PropertiesHelper {
@Autowired
protected Environment env;
private static Environment properties;
@PostConstruct
public void init() {
properties = env;
}
public static String getProperty(final String propertyName) {
return properties.getProperty(propertyName);
}
}
这个类工作正常,但这不是干净的代码(声纳讨厌我的静态变量)。
那么,我怎样才能在springboot应用程序中正确加载所有属性并且只加载一次?
答案 0 :(得分:0)
let price = product?.price ?? 0
parameters.properties
@PropertySource("classpath:parameters.properties")
@PropertySource("classpath:iot.properties")
public class PropertiesHelper {
@Value( "${Value.you.need}" )
private String valueYouNeed;
}
让它像这样,它应该适用于您的场景。
答案 1 :(得分:0)
如果只是想消除声纳报警(声纳讨厌我的静态变量)
// application.properties
spring.profiles.active=test1010
// IOC config bean container
@Configuration
@Data
public class PropertiesConfig{
@Value("${spring.profiles.active:preline}")
private String profiles;
}
//Use
@Autowired
private PropertiesConfig propertiesConfig;
@GetMapping("/getPropertiesConfig")
public String getPropertiesConfig(){
return propertiesConfig.getProfiles();
}
我觉得上面的方案更优雅~,你有更好的方案吗?