수색…


다른 데이터 소스를 사용하는 Dev 및 Prod 환경

Spring-Boot 애플리케이션을 성공적으로 설정 한 후에는 모든 구성이 application.properties 파일에서 처리됩니다. 이 파일은 src/main/resources/ 있습니다.

일반적으로 응용 프로그램 뒤에 데이터베이스가 있어야합니다. 개발에 대한 좋은의 설정해야합니다 devprod 환경을. 여러 application.properties 파일을 사용하면 Spring-Boot에 응용 프로그램을 시작할 환경을 알릴 수 있습니다.

좋은 예는 두 개의 데이터베이스를 구성하는 것입니다. 하나는 dev 이고 다른 하나는 productive 입니다.

dev 환경의 경우 H2 와 같은 메모리 내장 데이터베이스를 사용할 수 있습니다. src/main/resources/ 디렉토리에 application-dev.properties 라는 새 파일을 만듭니다. 파일 내부에는 메모리 내장 데이터베이스의 구성이 있습니다.

spring.datasource.url=jdbc:h2:mem:test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

prod 환경에서는 postgreSQL 과 같은 "실제"데이터베이스에 연결합니다. src/main/resources/ 디렉토리에 application-prod.properties 라는 새 파일을 만듭니다. 파일 안에는 postgreSQL 데이터베이스의 구성이 있습니다.

spring.datasource.url= jdbc:postgresql://localhost:5432/yourDB
spring.datasource.username=postgres
spring.datasource.password=secret

기본 application.properties 파일에서 이제 Spring-Boot에 의해 활성화되고 사용되는 프로파일을 설정할 수 있습니다. 내부에 하나의 속성 만 설정하면됩니다.

spring.profiles.active=dev

또는

spring.profiles.active=prod

중요한 것은 after - in application-dev.properties 있는 부분이 파일의 식별자라는 것입니다.

이제 식별자를 변경함으로써 개발 또는 생산 모드에서 Spring-Boot 애플리케이션을 시작할 수 있습니다. 메모리 내 데이터베이스가 시작되거나 "실제"데이터베이스에 연결됩니다. 물론 여러 속성 파일을 사용하는 경우가 훨씬 많습니다.

응용 프로그램을 자동으로 빌드하여 올바른 스프링 프로파일 설정 (maven)

다른 환경이나 사용 사례에 대해 여러 속성 파일을 작성하면 active.profile 값을 수동으로 수동으로 변경하기가 active.profile . 그러나 maven-profiles 을 사용하여 응용 프로그램을 빌드하는 동안 application.properties 파일에서 active.profile 을 설정하는 방법이 있습니다.

애플리케이션에 세 가지 환경 속성 파일이 있다고 가정 해 보겠습니다.

application-dev.properties :

spring.profiles.active=dev
server.port=8081

application-test.properties :

spring.profiles.active=test
server.port=8082

application-prod.properties .

spring.profiles.active=prod
server.port=8083

이 세 파일은 포트와 활성 프로파일 이름이 다릅니다.

기본 application.properties 파일에서 우리는 maven 변수를 사용하여 스프링 프로파일을 설정했습니다.

application.properties .

spring.profiles.active=@profileActive@

그 후에 우리는 pom.xml maven 프로파일을 추가하기 만하면됩니다. 우리는 세 환경 모두에 대한 프로파일을 설정할 것입니다 :

 <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <build.profile.id>dev</build.profile.id>
                <profileActive>dev</profileActive>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <build.profile.id>test</build.profile.id>
                <profileActive>test</profileActive>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <build.profile.id>prod</build.profile.id>
                <profileActive>prod</profileActive>
            </properties>
        </profile>
    </profiles>

이제 maven으로 응용 프로그램을 빌드 할 수 있습니다. Maven 프로파일을 설정하지 않으면, 기본 프로파일을 빌드합니다 (이 예제에서는 dev). 하나를 지정하려면 maven 키워드를 사용해야합니다. maven에서 프로파일을 설정하는 키워드는 -P 다음에 프로파일의 이름 바로 다음에옵니다 : mvn clean install -Ptest .

이제 사용자 정의 빌드를 만들어 IDE 에 저장하여 빌드 속도를 높일 수 있습니다.

예 :

mvn clean install -Ptest

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.3.RELEASE)

2017-06-06 11:24:44.885  INFO 6328 --- [           main] com.demo.SpringBlobApplicationTests      : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 11:24:44.886  INFO 6328 --- [           main] com.demo.SpringApplicationTests      : The following profiles are active: test

mvn clean install -Pprod

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.3.RELEASE)

2017-06-06 14:43:31.067  INFO 6932 --- [           main] com.demo.SpringBlobApplicationTests      : Starting SpringApplicationTests on KB242 with PID 6328 (started by me in C:\DATA\Workspaces\spring-demo)
2017-06-06 14:43:31.069  INFO 6932 --- [           main] com.demo.SpringApplicationTests      : The following profiles are active: prod


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow