Я очень новичок в концепции внешних конфигураций 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
Для меня это работает. Проверьте, есть ли у вас опечатка в коде. – Patrick
Хорошо, извините за ответ, это сработало для меня. некоторые параметры конфигурации, которые я использовал, были неверными. основанный на том, что я думал, что мой кофниг носит. Anyways thatnks много для реакции. – aj1984
@ aj1984can u, пожалуйста, сообщите, что именно исправил его вопрос? Даже я столкнулся с той же проблемой –