我想访问应用程序中提供的值。属性,例如:
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
logging.file=${HOME}/application.log
userBucket.path=${HOME}/bucket
我想访问userBucket。在Spring Boot应用程序的主程序中的路径。
我想访问应用程序中提供的值。属性,例如:
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
logging.file=${HOME}/application.log
userBucket.path=${HOME}/bucket
我想访问userBucket。在Spring Boot应用程序的主程序中的路径。
当前回答
最简单的方法是使用Spring Boot提供的@Value注释。您需要在类级别定义一个变量。例如:
@ value (" $ {userBucket.path} ") private字符串userBucketPath
还有另一种方法可以通过环境类来做到这一点。例如:
自动装配环境变量到你的类,你需要访问这个属性:
@ autowired 私人环境环境
使用环境变量在你需要的行中获取属性值:
environment.getProperty(“userBucket.path”);
希望这能回答你的问题!
其他回答
我也有这个问题。但是有一个很简单的解决办法。只需要在构造函数中声明你的变量。
我的例子:
application.propperties:
#Session
session.timeout=15
SessionServiceImpl经济舱:
private final int SESSION_TIMEOUT;
private final SessionRepository sessionRepository;
@Autowired
public SessionServiceImpl(@Value("${session.timeout}") int sessionTimeout,
SessionRepository sessionRepository) {
this.SESSION_TIMEOUT = sessionTimeout;
this.sessionRepository = sessionRepository;
}
获取财产价值的最佳方法是使用。
1. 使用Value注释
@Value("${property.key}")
private String propertyKeyVariable;
2. 使用环境bean
@Autowired
private Environment env;
public String getValue() {
return env.getProperty("property.key");
}
public void display(){
System.out.println("# Value : "+getValue);
}
为了从属性文件中选择值,我们可以有一个配置读取器类,比如ApplicationConfigReader.java 然后根据属性定义所有变量。参考下面的例子,
application.properties
myapp.nationality: INDIAN
myapp.gender: Male
下面是相应的阅读类。
@Component
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "myapp")
class AppConfigReader{
private String nationality;
private String gender
//getter & setter
}
现在,我们可以在任何想要访问属性值的地方自动连接阅读器类。 如。
@Service
class ServiceImpl{
@Autowired
private AppConfigReader appConfigReader;
//...
//fetching values from config reader
String nationality = appConfigReader.getNationality() ;
String gender = appConfigReader.getGender();
}
最简单的方法是使用Spring Boot提供的@Value注释。您需要在类级别定义一个变量。例如:
@ value (" $ {userBucket.path} ") private字符串userBucketPath
还有另一种方法可以通过环境类来做到这一点。例如:
自动装配环境变量到你的类,你需要访问这个属性:
@ autowired 私人环境环境
使用环境变量在你需要的行中获取属性值:
environment.getProperty(“userBucket.path”);
希望这能回答你的问题!
有两种方法,
你可以直接在类中使用@Value
@Value("#{'${application yml field name}'}")
public String ymlField;
OR
要使它干净,你可以清除@Configuration类,在那里你可以添加所有的@value
@Configuration
public class AppConfig {
@Value("#{'${application yml field name}'}")
public String ymlField;
}