Con esta claseSpring: cómo inyectar un valor al campo estático?
@Component
public class Sample {
@Value("${my.name}")
public static String name;
}
Si intento Sample.name
, siempre es 'nulo'. Así que probé esto.
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;
}
}
Este código funciona. Sample.name
está configurado correctamente. ¿Es esta la buena manera o no? Si no, ¿hay algo más que bueno? ¿Y, cómo hacerlo?
Esto no se resolverá; si la variable estática se usa antes de la creación del objeto. por ejemplo, si la variable estática se usa en bloque estático para construir el recurso, entonces el recurso se construirá con nulo. –