Springboot 와 Maven 다 중 환경 설정 솔 루 션

Profile 용법
저 희 는 application.yml 에서 jdbc.username 에 값 을 부여 합 니 다.이 값 은 변수 입 니 다.

jdbc:
  username: ${jdbc.username}
Maven 의 prolees 는 여러 환경 을 설정 할 수 있 습 니 다.a 환경 을 선택 하면의 값 은 위 설정 파일 의 변 수 를 대체 합 니 다.

 </profiles>
        <profile>
            <id>a</id>
            <properties>
                <jdbc.username>root</jdbc.username>
            </properties>
            <!--         -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>
컴 파일 된 application.yml 파일 을 보 았 습 니 다.과연 변 수 는 할당 되 었 습 니 다.Profile 의 이러한 특성 을 이용 하여 개발,테스트,생산 환경 을 설정 하고 서로 다른 환경 을 선택 할 때 서로 다른 변 수 를 사용 하여 Resources 와 Filter 에 맞 춰 포장 내용 과 교체 변 수 를 지정 할 수 있 을 지 추측 합 니 다.

jdbc:
  username: root
resources
컴 파일 파일 작업
filters
필터,필 터 를 설정 한 자원 은 같은 이름 의 변 수 를 할당 합 니 다.(할당 된 자원 파일 은 filter ing 을 true 로 설정 해 야 합 니 다)
다 중 환경 설정 솔 루 션
인터넷 의 대부분 은 application-dev.xml,application-test.xml,application-prod.xml 세 개의 파일 로 나 뉘 지만 우 리 는 실제 프로젝트 개발 에 있어 다양한 파일(예 를 들 어 log4j 의 프로필)을 사용 할 것 입 니 다.서로 다른 환경 에서 도 서로 다른 설정 이 어야 합 니 다.테스트 와 생산 환경 에서 같은 프로필 을 사용 할 수 없습니다.그래서 우 리 는 개발 환경,테스트 환경,생산 환경 을 대표 하 는 세 개의 폴 더 로 나 눌 것 이다.그들 안의 프로필 종 류 는 일치 하지만 내용 은 다르다.현재 환경 을 선택 한 후,jar 패 키 지 는 현재 환경 폴 더 의 프로필 만 포함 합 니 다.

├─main
│  ├─java
│  │  └─......
│  └─resources
│      ├─dev
│      │   └─config
│      │   │   └─mq.yml
│      │   │   └─redis.yml
│      │   └─application-dev.yml
│      ├─prod
│      │  └─config
│      │  │    └─mq.yml
│      │  │    └─redis.yml
│      │  └─application-prod.yml
│      └─test
│      │  └─config
│      │  │    └─mq.yml
│      │  │    └─redis.yml
│      │  └─application-test.yml
│    └─application.yml
│    └─a.xml
└─test
    └─java
        └─......
dev 아래 config 아래 mq.yml

mq: mq-dev
dev 아래 config 아래 redis.yml

redis: redis-dev
dev 의 application-dev.yml

profiles.active:
  dev
port: dev-port
application.yml

spring:
  profiles:
    active: ${profiles.active}
 
port: ${port}
컴 파일 된 결과 보기
 
이 중 application.yml 에서 변 수 는 바 뀌 었 습 니 다.

spring:
  profiles:
    active: dev
port: dev-port
완전한 pom.xml

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.1.0</version>
                <!--           ${}-->
                <configuration>
                    <useDefaultDelimiters>true</useDefaultDelimiters>
                </configuration>
            </plugin>
        </plugins>

        <!--             -->
        <testResources>
            <testResource>
                <!--     !        ,              -->
                <directory>src/main/resources</directory>
                <includes>
                    <include>application.yml</include>
                </includes>
                <filtering>true</filtering>
            </testResource>

            <testResource>
                <!--     !        ,              -->
                <directory>src/main/resources/${profiles.active}</directory>
                <includes>
                    <include>**/*.yml</include>
                </includes>
                <filtering>false</filtering>
            </testResource>
        </testResources>

        <resources>
            <resource>
                <!--        application.yml -->
                <directory>src/main/resources</directory>
                <includes>
                    <include>application.yml</include>
                </includes>
                <!--                          -->
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <!-- ${profiles.active} profile   -->
                <directory>src/main/resources/${profiles.active}</directory>
                <includes>
                    <include>**/*.yml</include>
                </includes>
                <filtering>false</filtering>
            </resource>

        </resources>

        <!--    filter,                 (   filtering   true        )-->
        <filters>
          <filter>
              src/main/resources/${profiles.active}/application-${profiles.active}.yml
          </filter>
        </filters>
    </build>

    <profiles>
        <profile>
            <!--        -->
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>

        </profile>

        <profile>
            <!--      -->
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>

        <profile>
            <!--      -->
            <id>prod</id>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
    </profiles>
Springboot 와 Maven 다 중 환경 설정 솔 루 션 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.Springboot Maven 다 중 환경 설정 에 관 한 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기