Với lớp nàyMùa xuân: Làm thế nào để tiêm một giá trị vào trường tĩnh?
@Component
public class Sample {
@Value("${my.name}")
public static String name;
}
Nếu tôi cố gắng Sample.name
, nó luôn luôn là 'null'. Vì vậy, tôi đã thử điều này.
public class Sample {
public static String name;
@PostConstruct
public void init(){
name = privateName;
}
@Value("${my.name}")
private String privateName;
public String getPrivateName() {
return privateName;
}
public void setPrivateName(String privateName) {
this.privateName = privateName;
}
}
Mã này hoạt động. Sample.name
được đặt đúng. Đây có phải là cách tốt hay không? Nếu không, có cách nào tốt hơn không? Và làm thế nào để làm điều đó?
Điều này sẽ không giải quyết được; nếu biến tĩnh được sử dụng trước khi tạo đối tượng. ví dụ: nếu biến tĩnh được sử dụng trong khối tĩnh để tạo tài nguyên, thì tài nguyên sẽ được tạo bằng null. –