Springboot 와 Maven 다 중 환경 설정 솔 루 션
7658 단어 SpringbootMaven다 중 환경 설정
저 희 는 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 다 중 환경 설정 에 관 한 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.