У меня есть веб-приложение, и я хочу использовать конфигурацию сервера из Spring Boot. Оба приложения расположены на локальной машине. Я сделал первые два приложения с нуля, и они работали вместе, но когда я использую клиент, в котором много зависимостей (не только облачная конфигурация и веб-зависимость), он больше не работает. Откуда я знаю? У меня есть переменная в файле свойств на сервере, и я пытаюсь использовать ее в своем клиенте с @Value("${атена}"). и появляется ошибка java.lang.IllegalArgumentException: не удалось разрешить заполнитель "atena" в значении "${atena}".
Следующее изображение — мое приложение для настройки сервера.

Основной класс с сервера имеет следующую аннотацию @EnableConfigServer
В atena-config.yml у меня есть только имя переменной:
atena: 'Hellllloooooo'
содержимое bootstrap.yml
server:
port: 9000
spring:
profiles:
active: native
и зависимости build.gradle:
dependencies {
implementation 'org.springframework.cloud:spring-cloud-config-server'
runtimeOnly 'org.springframework.boot:spring-boot-devtools'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Я уверен, что сервер исправен, что-то не так с моим клиентом.
--------------------> Клиентская сторона
У меня есть restcontroller:
@RestController
@RequestMapping("/songs")
public class SongController {
@Value("${atena}")
String variable;
@GetMapping(value = "/check-from")
public String viewVariable(){
return variable;
}
}
в котором я пытаюсь получить переменную из конфигурации сервера.
bootstrap.yml от клиента
spring:
application:
name: atena-config
cloud:
config:
uri: http://localhost:9000
И, наконец, build.gradle от клиента:
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
group = 'com'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.apis:google-api-services-youtube:v3-rev206-1.25.0'
implementation 'org.springframework.boot:spring-boot-starter'
implementation('org.apache.tomcat:tomcat-jdbc:9.0.10')
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation('org.mybatis:mybatis:3.4.6')
implementation('org.mybatis:mybatis-spring:1.3.2')
implementation('org.springframework.boot:spring-boot-starter-jdbc')
implementation('org.springframework.cloud:spring-cloud-starter-config')
compile group: 'org.postgresql', name: 'postgresql', version: '42.2.5'
runtimeOnly 'org.springframework.boot:spring-boot-devtools'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
Я действительно не знаю, что происходит, я почти уверен, что проблема в этих зависимостях, но я не понял, какая из них, я не могу исключить ни одну из них, потому что я использую их в проекте.
Не бери в голову. Я исправил это. Действительно, проблема была из-за моих зависимостей, мой gradle.build был с проблемой. Я создал новый проект с инициализатором Spring, имеющим все зависимости, и скопировал оттуда новый gradle.build, и теперь он работает.
Это новый build.gradle от клиента
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
group = 'com'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
maven { url 'https://repo.spring.io/milestone' }
}
ext {
set('springCloudVersion', 'Greenwich.RELEASE')
}
dependencies {
compile 'com.google.apis:google-api-services-youtube:v3-rev206-1.25.0'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.0'
implementation 'org.springframework.cloud:spring-cloud-starter-config'
runtimeOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'org.postgresql:postgresql'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}