2016-12-06 1 views
1

나는 활성 프로파일을 설정하려고 :springboot app : 프로필 맞춤법을 맞춤법으로 설정하는 방법은 무엇입니까? 다음과 같이

Application.properties

spring.profile.active = ${app.profile} 

속성 "app.profile는"JAR 외부 Application.properties에서 온다 (클래스 경로 내부) :

Application.properties 파일 (외부)

app.profile = dev 

"dev"프로필을로드하는 것을 봄이 거부했습니다. classpath 안에 "spring.profile.active"속성을 설정하면 예상대로 작동합니다.

대안이 있습니까?

감사

답변

0

당신은 당신의 웹 응용 프로그램의 web.xml 파일에 활성 프로파일을 설정할 수 있습니다. 코드는 아래를 참조하시기 바랍니다 :

<context-param> 
    <param-name>spring.profiles.active</param-name> 
    <param-value>dev, testdb</param-value> 
</context-param> 

을 자신의 더 web.xml 파일입니다 당신이 자바를 사용하여 웹 응용 프로그램을 configuriong있다, 당신은 WebApplicationInitializer를 사용 할 수 있습니다. 코드는 아래를 참조하시기 바랍니다 :이 작업을 할 수 @Configuration로 주석 할

class WebAppInitializer extends WebApplicationInitializer { 

    void onStartup(ServletContext container) { 
     AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); 
     rootContext.getEnvironment().setActiveProfiles("profileName"); 
     rootContext.register(SpringConfiguration.class); 
     container.addListener(new ContextLoaderListener(rootContext)); 
    } 
} 

WebAppInitializer 필요.

도와 주거나 도움이 더 필요하면 알려주세요.

+0

저는 REST가있는 앱에서만 작업하고 있습니다. "WebApplicationInitializer"가 올바른 방법일까요? – Idan

+0

내 목표는 사용자가 "app.profile"속성을 변경 한 다음 spring.profile.active = $ {app.profile}이 올바른 프로필을 설정한다는 것입니다. 다른 모든 외부 속성은 프로필을 제외하고 예상대로 작동합니다. – Idan

3

스프링 부트 앱을 시작할 때 프로필 이름을 지정할 수 있습니다. 당신은 프로 문법적으로 설정 프로파일하려면

는 다음 URL을 참조 VM 인수로 spring.profiles.active=dev를 추가 이클립스
에서 실행

java -jar my-first-spring-boot-app.jar -Dspring.profiles.active=dev 

CMD에서 실행

.
Spring Boot Programmatically setting profiles

+0

속성 이름을 변경할 수 있습니까? 사용자가 이러한 외부 속성을 편집하게됩니다. – Idan

+0

속성 변경 불가능 (spring.profiles.active) 값 (dev) 만 변경 가능 – Jobin

+0

내 목표는 사용자가 "app.profile"속성을 변경 한 다음 spring.profile.active = $ {app.profile}이 올바른 프로파일을 설정합니다. – Idan

관련 문제