3

Я очень новичок в концепции внешних конфигураций Spring Cloud и Spring, фактически начался вчера сам.Свойства клиента конфигурации облачного облака не устраняются

Я создал один сервер конфигурации, который выбирает конфигурации из локального репозитория Git, одного микросервера, который также является конфигурационным клиентом и одним сервером обнаружения службы на Eureka.

Ниже приведен код, который я в основном заимствован из различных ресурсов через интернет -

Config Сервер - application.yml:

server: 
    port: 8888 

spring: 
    cloud: 
    config: 
     server: 
     git: 
      uri: file:///${user.home}/config-repo 

Config сервер - Основной класс (начальная загрузка)

@EnableConfigServer 
@SpringBootApplication 
public class CloudConfigServerApplication { 

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

config-repo - это локальное git repo на моей машине и имеет файл .yml с именем клиентского приложения config, т.е. authmanager.yml

eureka: 
    client: 
     serviceUrl: 
      defaultZone: http://127.0.0.1:8761/eureka/ 
     healthcheck: 
      enabled: true 
     lease: 
      duration: 5 
spring: 
    application: 
     data: 
      mongodb: 
       host: localhost 
       port: 27017 
       database: edc_mc 
logging: 
    level: 
     org.exampledriven.eureka.customer.shared.CustomerServiceFeignClient: FULL 

Теперь после запуска сервера конфигурации, ниже выход конечной точки http://localhost:8888/authmanager/default -

{"name":"authmanager","profiles":["default"],"label":"master","version":"0ca6ca7b4502b9bb6ce1bf8efeb25516682cf79a","propertySources":[{"name":"file:///C:\\Users\\username/config-repo/authmanager.yml","source":{"eureka.client.serviceUrl.defaultZone":"http://127.0.0.1:8761/eureka/","eureka.client.healthcheck.enabled":true,"eureka.client.lease.duration":5,"spring.application.data.mongodb.host":"localhost","spring.application.data.mongodb.port":27017,"spring.application.data.mongodb.database":"db_name","logging.level.org.exampledriven.eureka.customer.shared.CustomerServiceFeignClient":"FULL"}}]} 

Micro сервис + Config код клиента -

bootstrap.yml -

server: 
    port: 9097 

spring: 
    application: 
    name: authmanager 
    cloud: 
    config: 
     uri: http://localhost:8888 

Клиент - Основной класс (бутстрап) -

@SpringBootApplication 
@EnableDiscoveryClient 
@EnableWebMvc 
public class CloudLoginManagerApplication { 

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

класса контроллера в клиенте конфигурации, где я хочу, чтобы использовать свойство файла конфигурации -

@RefreshScope 
@RestController 
@RequestMapping("/auth") 
public class MyController { 

    @Value("${spring.application.data.mongodb.database}") 
    String env_var; 

Пропустив Остальную часть коды для ясности.

Это ошибка, я получаю -

Could not resolve placeholder 'spring.application.data.mongodb.database' in string value "${spring.application.data.mongodb.database}" 

Другие свойства, такие как server.port не дает проблемы.

Я также попробовал интерфейс среды, но это также возвращает нуль.

Любые указатели, пожалуйста, я почти дошел до тупика.

Спасибо,

AJ

+0

Для меня это работает. Проверьте, есть ли у вас опечатка в коде. – Patrick

+0

Хорошо, извините за ответ, это сработало для меня. некоторые параметры конфигурации, которые я использовал, были неверными. основанный на том, что я думал, что мой кофниг носит. Anyways thatnks много для реакции. – aj1984

+0

@ aj1984can u, пожалуйста, сообщите, что именно исправил его вопрос? Даже я столкнулся с той же проблемой –

ответ

5

Чтобы включить облако конфигурации вы должны добавить spring-cloud-starter-config ваши зависимости. Вы можете проверить, проверив/env (возможно, потребуется добавить привод), чтобы узнать, какие свойства доступны.

<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-config</artifactId> 
</dependency> 
+0

Привет, Джефф, извините за ответ, это сработало для меня. некоторые параметры конфигурации, которые я использовал, были неверными. основанный на том, что я думал, что мой кофниг носит. Anyways thatnks много для реакции. – aj1984

+0

Эй, Джефф, я снова попал в ту же проблему, и, наконец, вы действительно помогли вам. Благодарю. – aj1984