Saltar al contenido

Spring Boot: @Value regresa siempre null

Esta sección ha sido probado por especialistas para que tengas la seguridad de la veracidad de nuestra esta crónica.

Solución:

No puede usar @Value en static variables Tendrás que marcarlo como no static o echa un vistazo aquí a una forma de inyectar valores en static variables:

https://www.mkyong.com/spring/spring-inject-a-value-into-static-variables/

EDITAR: En caso de que el enlace se rompa en el futuro. Puedes hacer esto haciendo un no static setter para tu static variable:

@Component
public class MyComponent 

    private static String directory;

    @Value("$filesystem.directory")
    public void setDirectory(String value) 
        this.directory = value;
    

Sin embargo, la clase debe ser un bean de Spring o, de lo contrario, no se creará una instancia y Spring no podrá acceder al setter.

Pocas cosas para que verifiques aparte de la respuesta de @Plog.

static las variables no se pueden inyectar con valor. Verifique la respuesta de @Plog.

  • Asegúrese de que la clase esté anotada con @Component o @Service
  • El escaneo de componentes debe escanear el paquete adjunto para registrar los beans. Verifique su XML si la configuración está habilitada para xml.
  • Compruebe si la ruta del archivo de propiedades es correcta o está en classpath.

Para aquellos que aún enfrentan el problema después de todas las sugerencias anteriores, asegúrese de no acceder a esa variable antes de que se haya construido el bean.

Eso es:

En lugar de hacer esto:

@Component
public MyBean 
   @Value("$properties.my-var")
   private String myVar;

   private String anotherVar = foo(myVar); // <-- myVar here is still null!!!

hacer esto:

@Component
public MyBean 
   @Value("$properties.my-var")
   private String myVar;

   private String anotherVar;

   @PostConstruct  
   public void postConstruct()

      anotherVar = foo(myVar); // <-- using myVar after the bean construction
   

Espero que esto ayude a alguien a evitar perder horas.

Sección de Reseñas y Valoraciones

No se te olvide dar recomendación a este tutorial si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *