Saltar al contenido

Spring Cloud Configuration Server no funciona con el archivo de propiedades local

Solución:

Todo mi código está aquí https://github.com/spencergibb/communityanswers/tree/so27131143

src / main / java / Application.java

@Configuration
@EnableAutoConfiguration
@EnableConfigServer
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

src / main / resources / application.yml

spring:
  application:
     name: myconfigserver
  profiles:
     active: native

my:
  property: myvalue

src / main / resources / myapp.yml

my:
  otherprop: myotherval

Para obtener las propiedades de una aplicación denominada myapp, Haz lo siguiente.

curl http://localhost:8080/myapp/default

{
     "name": "default",
     "label": "master",
     "propertySources": [
          {
                "name": "applicationConfig: [classpath:/myapp.yml]",
                "source": {
                     "my.otherprop": "myotherval"
                }
          },
          {
                "name": "applicationConfig: [classpath:/application.yml]",
                "source": {
                     "spring.application.name": "myconfigserver",
                     "spring.profiles.active": "native",
                     "my.property": "myvalue"
                }
          }
     ]
}

Puedo leer la configuración para el servicio de Apple (Test Micro Service) usando el servidor de configuración Spring.

Ejemplo application.yml de la aplicación de configuración de primavera

spring:
    profiles:
        active: native
    cloud:
        config:
            server:
                native:
                    searchLocations: classpath:config/
server:
  port: 8888


endpoints:
    restart:
      enabled: true

Coloque sus archivos .properties o .yml dentro de la carpeta src main resources config. Asegúrese de que el nombre de estos archivos coincida spring.application.name de su micro servicio.

Por ejemplo si spring.application.name = servicio de manzana entonces el archivo de propiedades debe ser apple-service.properties en src main resources config carpeta.

Ejemplo bootstrap.yml de servicio de manzana:

spring:
  application:
    name: apple-service

cloud:
  config:
    uri: http://localhost:8888

Usar spring.profiles.active = native es lo que parece sugerir la documentación de Spring, pero tampoco pude hacer que funcione. Mi archivo application.properties es

server.port=8888
spring.cloud.config.profiles=native 

pero la respuesta de la URL

http://localhost:8888/config-server/env

es

{"name":"env","label":"master","propertySources":[{"name":"https://github.com/spring-cloud-samples/config-repo/application.yml","source":{"info.url":"https://github.com/spring-cloud-samples","info.description":"Spring Cloud Samples"}}]}

lo que indica que se ignoró el perfil nativo y que el servidor sigue considerando github como fuente de propiedad.

Un pequeño problema adicional que encontré es el puerto predeterminado del servicio de configuración. Según la documentación de Sprin Cloud Config, debería ser 8888. Si elimino server.port = 8888 de mi application.properties, el servidor de configuración se inicia en el puerto 8080, que es el puerto Spring Boot predeterminado, pero no el único que debería usar el servidor de configuración.

¡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 *