Spring

마이크로 서비스는 spring-cloud-config-server 마이크로 서비스에서 속성을 가져오지 않습니다.

기록만이살길 2022. 12. 1. 18:02
반응형

마이크로 서비스는 spring-cloud-config-server 마이크로 서비스에서 속성을 가져오지 않습니다.

1. 질문(문제점):

스프링 클라우드 구성 서버로 간단한 마이크로 서비스 앱을 만들고 싶습니다. Github 저장소를 사용하여 구성 파일을 저장하고 있습니다. 현재 두 개의 매우 간단한 마이크로서비스가 있습니다. 그 중 하나는 Github의 원격 저장소에서 속성을 검색하는 cloud-config-server입니다. 이 마이크로 서비스의 기본 클래스에서 @EnableConfigServer 어노테이션을 추가하고 application.properties 파일에 몇 가지 속성을 제공했습니다.

spring.application.name=cloud-config-server
server.port=8888

spring.cloud.config.server.git.uri=*Remote repo URI*
spring.cloud.config.server.git.username=*Username*
spring.cloud.config.server.git.password=*Password*
spring.cloud.config.server.git.clone-on-start=true

http://localhost:8888/cloud-config-server/default로 이동하면 모든 것이 잘 작동하고 스프링 클라우드 구성 서버가 속성을 성공적으로 검색합니다.

두 번째 마이크로서비스에서 cloud-config-server에 연결하기 위해 2개의 속성이 있는 bootstrap.properties를 추가했습니다.

spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.name=cloud-config-server

그리고 이 의존성도 추가했습니다.

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

불행히도 내 마이크로 서비스는 cloud-config-server에서 속성을 검색하지 않습니다. @Value 어노테이션을 통해 속성을 사용하려고 하면 오류가 발생합니다.

autowired 의존성 주입에 실패했습니다. 중첩 예외는 java.lang.IllegalArgumentException입니다. "${test.text} 값에서 자리 표시자 'test.text'를 확인할 수 없습니다.

내 속성 이름 "test.text"에 오타를 만들지 않았다고 확신합니다.

2. 해결방안:

나는 이미 내 문제를 해결했습니다. Bootstrap.properties 파일은 더 이상 기본적으로 활성화되지 않습니다. 새 의존성을 추가하여 활성화할 수 있습니다.

       <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

또는 bootstrap.properties 파일을 제거하고 application.properties 파일에 이러한 속성을 제공할 수 있습니다.

spring.config.import=configserver:*URI to your cloud config server*
spring.cloud.config.name=*Your cloud config server name*
반응형