我想访问应用程序中提供的值。属性,例如:
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应用程序的主程序中的路径。
当前回答
遵循以下步骤。 1:-创建你的配置类如下所示
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.beans.factory.annotation.Value;
@Configuration
public class YourConfiguration{
// passing the key which you set in application.properties
@Value("${userBucket.path}")
private String userBucket;
// getting the value from that key which you set in application.properties
@Bean
public String getUserBucketPath() {
return userBucket;
}
}
2:-当你有一个配置类时,然后从你需要的配置中注入变量。
@Component
public class YourService {
@Autowired
private String getUserBucketPath;
// now you have a value in getUserBucketPath varibale automatically.
}
其他回答
您可以使用@Value从应用程序加载变量。如果你在一个地方使用这个值,那么@ConfigurationProperties是一个更好的方法,但是如果你需要一个更集中的方式来加载这些变量。
此外,如果需要不同的数据类型来执行验证和业务逻辑,则可以加载变量并自动转换它们。
application.properties
custom-app.enable-mocks = false
@Value("${custom-app.enable-mocks}")
private boolean enableMocks;
实际上有三种方法来读取应用程序。属性文件,
使用环境,
@Autowired
Environment environment
environment.getProperty({propertyName})
或者使用@Value,
@Value("${property}")
但是@Value的问题是,如果值不在属性文件中,它可能会抛出异常
建议使用@ConfigurationProperties
@ConfigurationProperties("userBucket")
public class test{
private String path;
//getters and setters
}
详细示例-读取application.properties
最好的方法是使用@Value注释,它会自动为你的对象私有环境赋值。 这将减少你的代码,它将很容易过滤你的文件。
1.Injecting a property with the @Value annotation is straightforward:
@Value( "${jdbc.url}" )
private String jdbcUrl;
2. we can obtain the value of a property using the Environment API
@Autowired
private Environment env;
...
dataSource.setUrl(env.getProperty("jdbc.url"));
您可以访问该应用程序。属性文件值使用:
@Value("${key_of_declared_value}")