У меня возникла проблема при запуске клиентского приложения с весенней загрузкой, которому необходимо подключиться к серверу конфигурации. Файл bootstrap.yml игнорируется
Сервер конфигурации - это работает!
server:
port: 8888
spring:
application:
name: configserver
cloud:
config:
server:
git:
uri:https://[email protected]/eco/properties.git
bootstrap.yml - Клиент конфигурации - Не работает!
spring:
application:
name: api
cloud:
config:
uri: http://localhost:8888
Файл bootstrap.yml игнорируется при запуске приложения.
POM Клиент
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RC2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-cloud.version>2.0.0.RC2</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Database dependencies -->
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/resources/lib/ojdbc7-12.1.0.2.jar</systemPath>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.10.19</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<finalName>api-emissor</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.3.5.RELEASE</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
Клиент основного класса
@SpringBootApplication
@EnableEurekaClient
@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class})
@ComponentScan("br.com.eco.api.emissor")
@EnableJpaRepositories("br.com.eco.api.emissor.repository")
@EntityScan("br.com.eco.api.emissor.domain")
public class Application {
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
}
Почему игнорируется bootstrap.yml?
Как вы думаете, это может быть моей проблемой?
Может быть, но пока у вас нет действительных версий, я не могу сказать.




Вам необходимо указать имя конфигурации, и оно должно совпадать с именем файла конфигурации в службе конфигурации.
spring:
cloud:
config:
name: myService # myService.yml or myService-[profile].yml( if you have a profile activated).
uri: http://localhost:8888
Вам нужно добавить зависимость для Spring Cloud Starter.
Если вы определили spring.config.location, он переопределит все пути к файлам конфигурации, включая путь к bootstrap.yml, поэтому вам придется изменить spring.config.location на spring.config.additional-location.
Поэтому, когда вы запустите свое приложение, вам нужно будет добавить -Dspring.config.additional-location=/path/to/application.yml.
Для получения дополнительной информации проверьте это
это зависимость, которую вы должны добавить
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
В моем случае я использую STS4, и созданный файл POM по умолчанию не работает, и у меня была такая же проблема, как и у вас, но после того, как я немного изменил свой файл POM, все работает, и, наконец, я нашел что-то вроде «Получение конфигурации с сервера "в моей консоли. Изменения в моем POM были следующими:
После того, как я применил предыдущие изменения, мой файл POM выглядит так:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!-- <version>2.4.0</version> -->
<version>2.2.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>net.kha.microservices</groupId>
<artifactId>limits-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>limits-service</name>
<description>Demo project for Spring Boot - Cloud</description>
<properties>
<java.version>1.8</java.version>
<!-- <spring-cloud.version>2020.0.0-SNAPSHOT</spring-cloud.version> -->
<!-- <spring-cloud.version>2020.0.0-M4</spring-cloud.version> -->
<!-- Both are working with spring boot version 2.2.6.RELEASE
you should find something like "Fetching config from server at" in your console
each time you run the client project as spring boot app
-->
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
<!-- <spring-cloud.version>Hoxton.SR4</spring-cloud.version> -->
</properties>
Добавьте эту зависимость в клиент конфигурации весенней загрузки:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Я только обнаружил, что мое приложение не считывает мою загрузку с помощью truss в моем приложении. Это предложение устранило проблему.
Это действительно решает проблему с моей стороны. Не то, что зарождается в весенних облаках.
Приложение будет использовать bootstrap.yml в случае, если оно использует какие-то зависимости Spring-Cloud. Это может быть клиент облачного обнаружения
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
или клиент облачной конфигурации
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
Вы не можете смешивать версии весеннего облака. Вы используете старую версию весеннего облака Netflix eureka