java如何从引导中获取值。来自静态实例的yml文件
- 我有一个类宇宙连接和供应商响应速度
- 我从供应商响应Feed中调用了宇宙连接的方法
- 我调用的SupplierGetResponseFeed方法是静态的
- 例如:
public static SupplierResponseDataEntity prepareSupplierAzureData(Map<String, Object> row, String[] columnNames) {
- 因此,当我在SupplierGetResponseFeed中创建宇宙连接的对象时,我不能使用
@Autowired
作为无法从引导中选取值的原因。宇宙连接中的yml文件 虽然我在SupplierGetResponseFeed中使用@Autowired创建对象,但我无法从引导中选择值
@自动连线 静态宇宙连接宇宙
以下是供应商响应Feed的代码
public class SupplierGetResponseFeed {
static CosmosConnection cosmos= new CosmosConnection(); //creating object
public static SupplierResponseDataEntity prepareSupplierAzureData(Map<String, Object> row, String[] columnNames) {
//Some code
cosmos.connectToDB(); //calling the method of CosmosConnection class
}
宇宙连接的代码是CosmosConnection
@Configuration
@ComponentScan
public class CosmosConnection {
@Value("${cosmos.connectionuri}") private String uri;
@Value("${cosmos.primarykey}") private String primarykey;
public String connectToDB() throws DocumentClientException, IOException, ParseException {
System.out.println("URI is " + uri); //getting this as null
我需要做哪些更改来从引导中选取值。yml
# 1 楼答案
javax包中名为PostConstruct的注释。使用spring框架的注释可以解决这个问题。如源代码中所述:
下面的代码就是一个例子:
毕竟,考虑到代码分析UTIL,不建议从实例方法写入静态,因此您可能需要抑制与init方法一起使用的警告注释来消除警告