Проблема Spring Cloud Config Server - настройка нескольких исходных кодов и jdbc - PullRequest
0 голосов
/ 30 мая 2018

Я хочу подключиться к нескольким репозиториям, т. Е. Native (файловая система) и jdbc в весеннем облачном конфиге.Я создал весенний облачный конфигурационный сервер с подробностями ниже

application.properties

server.port=8888
spring.profiles.include=native,jdbc

spring.cloud.config.server.native.search-locations=classpath:/config,classpath:/app1, classpath:/app2,classpath:/ep
encrypt.key=abcdef


spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/configuration?useSSL=false
spring.cloud.config.server.jdbc.sql=SELECT properties.key, properties.value from  PROPERTIES where APPLICATION=? and PROFILE=? and LABEL=?

spring.datasource.username=root
spring.datasource.password=root  

spring.cloud.config.server.native.order=1
spring.cloud.config.server.jdbc.order=2 

Независимо от порядка приоритетов, он всегда выбирает информацию из jdbc, а не из нативного.Я попытался добавить последние 2 свойства для порядка в bootstrap.properties, все еще то же поведение.Ам чего-то не хватает?Правильна ли моя конфигурация?Пожалуйста, предложите

1 Ответ

0 голосов
/ 30 мая 2018
Весной

Boostrap.yml загружается до application.yml, поэтому вы объявляете, что порт сервера, местоположение поиска конфигурации и конфигурация активного профиля - хороший подход для этого стека, поэтому оставьте его простым

и в приложении - "профиль" .yml имеют среду и другие свойства конфигурации

и ваш boostrap.yml или подобные им свойства

server:
  port: 8888

spring:
  application:
    name: appName
  profiles:
    active: native,jdbc
  cloud:
     config:
       server:
         native:
           order: 1
           searchLocations: classpath:/config,classpath:/app1, classpath:/app2,classpath:/ep

и создайте applicationaiton-jdbc.propertiesили файл yml в том же слое в boostrap.yml или в свойствах и объявите свойства jdbc

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: 'jdbc:mysql://localhost:3306/configuration?useSSL=false'
  cloud:
    config:
      server:
        jdbc:
          order: 2
          sql: 'SELECT properties.key, properties.value from  PROPERTIES where APPLICATION=? and PROFILE=? and LABEL=?'
  username: root
  password: root

и конфигурацию вашего сервера конфигурации следующим образом

@SpringBootApplication
@EnableConfigServer
@Import({JdbcEnvironmentRepository.class})
public class ConfigServer {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource dataSource() {
       return DataSourceBuilder.create().build();
    }

    @Bean
    public JdbcTemplate jdbcTemplate() {
        return new JdbcTemplate(dataSource());
    }

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