2017-05-09 4 views
0

Git에서 application.properties 파일을 보관하고있는 개인 저장소를 작성했습니다.@ConfigurationProperties가 외부 특성 파일을 가져 오지 않습니다.

클라우드 설정 서버 ('my-config-server')를 만들고 git 저장소 URL을 사용했습니다.

Git 저장소를 사용하여 외부 속성 파일에 액세스해야하는 스프링 부트 응용 프로그램을 바인딩했습니다.

@javax.jws.WebService(
        serviceName = "myService", 
        portName = "my_service", 
        targetNamespace = "urn://vdc.com/xmlmessaging/SD", 
        wsdlLocation = "classpath:myService.wsdl", 
        endpointInterface = "com.my.service.SDType") 

@PropertySource("application.properties") 
@ConfigurationProperties 
public class SDTypeImpl implements SDType { 

/*It has various services implementation that use following method**/ 

private SDObj getObj (BigDecimal value) { 
    AnnotationConfigApplicationContext context = 
        new AnnotationConfigApplicationContext(
          SDTypeImpl.class); 
    SDObj obj = context.getBean(SDPropertiesUtil.class).getObj(value); 
    context.close(); 
    return obj; 
} 

}

또 다른 클래스 :

public class SDPropertiesUtil { 

@Autowired 
public Environment env; 

public SDObj getObj(BigDecimal value) { 

String valueStr = env.getProperty(value.toString()); 
/*do logic*/ 
} 

내 응용 프로그램이 시작하지만 속성 내 자식 저장소에서 파일을로드 할 수 없습니다. 내가 외부에서 application.properties를 사용하여 내 응용 프로그램을 말하고

@PropertySource("application.properties") 
@ConfigurationProperties 

을 사용하고 있기 때문에

나는 내 응용 프로그램에서 SRC/메인/자원에서 application.properties을한다고 생각하지만, 내부 속성 파일을 사용하지 마십시오. 그러나 이것은 일어나지 않습니다. 내 응용 프로그램은 여전히 ​​내부 속성 파일을 사용하고 있습니다.

+0

@PraneethRamesh 당신은 무슨 일이 일어나고 있는지 알고 :

상세한 튜토리얼

은 내 블로그에서 볼 수 있습니다? – Tiya

답변

0

포함 된 소스에 구성 서버에 연결하기위한 앱 구성 설정이 표시되지 않습니다. 그것을 공유하는 것이 마음에 드십니까?

/{application}/{profile}[/{label}] 
/{application}-{profile}.yml 
/{label}/{application}-{profile}.yml 
/{application}-{profile}.properties 
/{label}/{application}-{profile}.properties 

이의이 파일을 포함하는 힘내의 repo에 구성 서버 점을 가정 해 봅시다 :

이것은 설정 서버가 클라이언트 응용 프로그램에서 조회 할 수있는 방법입니다 demo-config-client-development.properties

대로 구성 서버를 조회 할 수 있어야한다 :

curl http://localhost:8101/demo-config-client-development.properties 

가 구성 서버가 실행되는 가정 로컬 및 8181.

에서 수신 대기도라는 이름의 클라이언트 응용 프로그램이 있다고 가정의하자 : 데모 - 설정 - 클라이언트는 config 서버에 연결하여 개발 봄 프로파일을 사용하여 실행이 응용 프로그램은 지금 수있을 것입니다 구성 서버를 통해 Git 저장소에 호스팅 된 원격 등록 정보를 읽습니다. , http://tech.asimio.net/2016/12/09/Centralized-and-Versioned-Configuration-using-Spring-Cloud-Config-Server-and-Git.html

+0

cf create-service 명령을 사용하여 구성 서버를 만들었습니다. 서버에 내 git 저장소 URL을 제공하고 spring-boot 응용 프로그램에서 구성 서버 이름 (서비스 : - config-server)을 순서대로 추가했습니다 앱이 푸시되면 앱을 서버에 바인딩합니다. – Tiya

+0

그런 다음 스프링 프로파일 인 -Pspring.profiles.active = dev를 사용하고 Git의 등록 정보 파일 이름을 -dev.properties로 바꿉니다. @PropertySource ("application.properties")는 필요하지 않습니다. – ootero

+0

@PropertySource ("application.properties")를 삭제했는데 내 스프링 부팅 응용 프로그램이 Git의 등록 정보 파일을 참조하고 Git에 정확히 파일이있는 위치를 어떻게 이해합니까? – Tiya