Spring 3.1 디폴트프로파일
내 어플리케이션에서는 콩에 주석을 달았다.@Profile("prod")
그리고.@Profile("demo")
첫 번째는 실전 DB에 접속하는 콩에 사용되며 두 번째는 가짜 DB를 사용하는 콩에 주석을 붙입니다.HashMap
개발 시간을 단축할 수 있습니다.
디폴트 프로파일이 필요합니다("prod"
something-something에 의해 덮어쓰지 않으면 항상 사용됩니다.
내 안에 있는 게 완벽할 거야web.xml
:
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>prod</param-value>
</context-param>
그리고 나서 이걸 덮어쓰고-Dspring.profiles.active="demo"
제가 할 수 있는 일:
mvn jetty:run -Dspring.profiles.active="demo".
하지만 슬프게도 이것은 효과가 없다.내가 그걸 어떻게 얻겠어?설정-Dspring.profiles.active="prod"
선택할 수 없습니다.
web.xml에서 운영 환경을 기본 프로파일로 정의합니다.
<context-param>
<param-name>spring.profiles.default</param-name>
<param-value>prod</param-value>
</context-param>
다른 프로파일을 사용하고 싶은 경우 시스템 속성으로 전달합니다.
mvn -Dspring.profiles.active="demo" jetty:run
제 경험상으로는
@Profile("default")
bean은 다른 프로파일이 식별되지 않은 경우에만 컨텍스트에 추가됩니다.다른 프로파일(예:-Dspring.profiles.active="demo"
이 프로파일은 무시됩니다.
같은 문제가 있지만 Web Application을 사용합니다.Servlet Context를 프로그래밍 방식으로 설정하기 위한 이니셜라이저(Servlet 3.0+).다음 작업을 수행합니다.
public class WebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext sc) throws ServletException {
// Create the 'root' Spring application context
final AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
// Default active profiles can be overridden by the environment variable 'SPRING_PROFILES_ACTIVE'
rootContext.getEnvironment().setDefaultProfiles("prod");
rootContext.register(AppConfig.class);
// Manage the lifecycle of the root application context
sc.addListener(new ContextLoaderListener(rootContext));
}
}
또한 PROD 프로파일을 삭제하고 @Profile("!demo")을 사용할 수도 있습니다.
이미 게시된 @andih 기본 프로덕션 프로필 설정
maven jetty 플러그인의 기본 프로파일을 설정하는 가장 쉬운 방법은 플러그인 구성에 다음 요소를 포함하는 것입니다.
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
<systemProperties>
<systemProperty>
<name>spring.profiles.active</name>
<value>demo</value>
</systemProperty>
</systemProperties>
</configuration>
</plugin>
스프링은 액티브한 프로파일을 판별할 때 다음 두 가지 속성을 제공합니다.
spring.profiles.active
그리고.
spring.profiles.default
한다면spring.profiles.active
설정되어 있는 경우, 그 값에 의해서 액티브한 프로파일은 이 값에 따라 달라집니다.하지만 만약spring.profiles.active
아직 정해지지 않았으니 봄은spring.profiles.default.
둘 다 아닌 경우spring.profiles.active
도 아니다spring.profiles.default
이 설정되면 액티브프로파일은 생성되지 않고 프로파일로 정의되지 않은 콩만 생성됩니다.프로파일을 지정하지 않은 모든 콩은default
프로파일링 합니다.
web.xml을 필터링된 리소스로 설정하고 이 값을 maven 프로파일 설정에서 maven으로 채울 수 있습니다.이것이 우리가 하는 일입니다.
pom filter all resources (${} 마킹이 없는 경우 taht를 수행할 수 있습니다)
<webResources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</webResources>
in web.xml put
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>${spring.prfile}</param-value>
</context-param>
폼에서 maven 프로파일 생성
<profiles>
<profile>
<id>DEFAULT</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profile>prod</spring.profile>
</properties>
<profile>
<profile>
<id>DEMO</id>
<properties>
<spring.profile>demo</spring.profile>
</properties>
<profile>
</profiles>
이제 사용할 수 있습니다.
mvn jetty:run -P DEMO
또는 간단히 말하면-P DEMO
어떤 명령이라도 하면
언급URL : https://stackoverflow.com/questions/10041410/default-profile-in-spring-3-1
'programing' 카테고리의 다른 글
Java Collections Framework 구현에 대한 Big-O 요약 (0) | 2022.12.28 |
---|---|
Lodash가 어레이에서 중복 제거 (0) | 2022.12.28 |
웹 페이지 제목을 동적으로 변경하는 방법 (0) | 2022.12.28 |
어레이의 모든 요소를 Java의 특정 값으로 초기화하는 방법 (0) | 2022.12.28 |
특정 구성 요소에 대해 특정 Vue 경고를 사용하지 않도록 설정할 수 있습니까? (0) | 2022.12.18 |