java 通过spring Boot 中的动态键读取属性

jecbmhm3  于 2023-08-01  发布在  Java
关注(0)|答案(4)|浏览(142)

我想知道在Sping Boot 中是否有任何方法可以通过使用 Dynamic Keys 从属性文件中读取属性值。我知道属性可以放在application.properties中,并且可以使用@Value("propertyKey")读取,但我的键将是动态的。
我知道@PropertySource可以读取属性值,我可以动态构造我的键。那么,有没有什么方法是由Sping Boot 提供的呢?

368yc8dk

368yc8dk1#

您可以用途:

@Autowired
private Environment env;

字符串
然后从代码中加载属性:

env.getProperty("your.property")

mzaanser

mzaanser2#

1-通过Java注解注册属性文件。

@Configuration
@PropertySource("classpath:test.properties")
public class PropertiesJavaConfig {
    
}

字符串
2-运行时动态选择合适的文件。

@PropertySource({ 
  "classpath:persistence-${envTarget:DB}.properties"
})

pjngdqdw

pjngdqdw3#

如果您正在从www.example.com阅读application.properties,您只需定义freakman指定的环境springautowired变量(org.springframework.core.env.Environment)。但是,如果您使用的是特定于某些属性的新属性文件,则可以使用以下代码:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;

 @Configuration
 @PropertySource("classpath:filename.properties")
 public class CustomConfig {
    @Autowired
    Environment env;

    public String getProperty(String keyName) {
       return env.getProperty(keyName);
    }    
 }

字符串

6uxekuva

6uxekuva4#

按照以下步骤操作。
1.使用private环境env;类,并导入
import org.springframework.core.env.Environment;
1.自动连接私有Environment类,如下所示
私人环境;
public FileSizeValidator(Environment environment){ this. environment = environment;}
1.使用getProperty方法调用该值
第一个月

相关问题