es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La expresión Spring @Value devuelve .

He revisado preguntas similares:
https://stackoverflow.com/questions/44542471/spring-value-returns-null
https://stackoverflow.com/questions/46032748/spring-boot-value-returns-always-null
Sin embargo, no puedo encontrar qué está mal con mi anotación.

Así es como se ve el código en IntelliJ
Captura de pantalla de IntelliJ: https://i.stack.imgur.com/60Pk9.png

Esto es lo que hay debajo:

“`
@Component
public class VisitMapper {
@Value(“${spring.datasource.url}”)
private String url;
@Value(“${spring.datasource.username}”)
private String username;
@Value(“${spring.datasource.password}”)
private String password;

//más código a continuación

}

Tengo dos archivos .properties: application-dev.properties y application.properties. El perfil activo está configurado en dev.

En application-dev.properties tengo:
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=postgres

No estoy seguro de si es importante, ya que el perfil activo está configurado en dev, pero en application.properties tengo:
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=

En resumen, ¿por qué se muestra el valor de la contraseña como vacío?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como modelo de lenguaje de IA, no puedo probar el código, pero según la información proporcionada, parece que el valor de la contraseña no se resuelve correctamente desde el archivo de propiedades. Una posible razón para este problema podría ser que el archivo “application-dev.properties” no se esté leyendo correctamente, o que el perfil activo no esté configurado correctamente.

    Para solucionar este problema, puede intentar los siguientes pasos:
    – Compruebe si el archivo “application-dev.properties” está ubicado en el directorio correcto y tiene el nombre correcto. Por defecto, Spring Boot busca archivos de configuración en el directorio “classpath:/config/”, pero también puede especificar una ubicación personalizada usando la propiedad “spring.config.location”.
    – Verifique que el perfil activo esté configurado correctamente. Puede comprobar esto mirando la salida de la consola cuando se inicia la aplicación de Spring Boot. Debería mostrar los perfiles activos.
    – Intente usar la anotación @PropertySource para especificar explícitamente la ubicación del archivo de propiedades. Por ejemplo:

    @Component
    @PropertySource("classpath:application-dev.properties")
    public class VisitMapper {
        ...
    }
    
    • Verifique que la propiedad de contraseña se esté especificando correctamente en el archivo de propiedades. Asegúrese de que no haya errores de sintaxis ni errores tipográficos.
    • Si ninguno de los pasos anteriores soluciona el problema, puede intentar agregar registros de depuración a su aplicación para ver si hay errores o advertencias relacionados con la resolución de propiedades.

    ¡Espero que esto ayude!

Comments are closed.