spring: profiles: dev spring.datasource: driver-class-name: password: ~ url: ~ username: ~ --- secdb: profiles: dev spring.datasource: driver-class-name: ~ password: ~ url: ~ username: ~ ---Tengo dos propiedades declaradas arriba como se muestra en el archivo application.yml pero cuando lo uso en la clase de implementación de la siguiente manera.
@Value("${spring.datasource.url}") private String URL;funciona y recoge la URL del archivo YML. pero cuando hago lo siguiente
@Value("${secdb.spring.datasource.url}") private String URL;falla en el inicio de arranque de primavera diciendo
Could not resolve placeholder 'secdb.spring.datasource.url' in value...Como, estoy en el nivel de principiante. YML puede estar equivocado, pero mi intención es tener dos fuentes de datos en el archivo YML y usar la segunda para una conexión JDBC, la otra es la predeterminada. Por favor, guíame a través del error.
Has cometido dos errores en tu archivo yaml.
--- .spring.datasource: , hay un espacio. Indica spring.datasource: es una subpropiedad de spring: .@Value("${secdb.spring.datasource.url}") no es en absoluto la forma correcta. Incluso si activa secdb , también necesita obtener el valor como @Value("${spring.datasource.url}") .secdb: profiles: dev . No es una forma familiar. Puede usarlo como spring: profiles: secdb y activarlo como spring.profiles.active=secdb . O si insiste en usarlo de esa manera, debe activarlo como spring.profiles.active=secdb . Después de todo, si desea utilizar las propiedades de los perfiles de Spring, debe activarlas como $ java -jar -Dspring.profiles.active=production o agregar spring.profiles.active=production en application.properties.
Le sugiero que lea este documento en detalle.
Me alegraré si ayuda.