내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
우선, Java 프로젝트에는 다양한 환경 구성이 필요합니다. 패키징 시 해당 구성이 자동으로 사용됩니다. 그렇다면 그것을 달성하는 방법은 무엇입니까?
Spring Boot 프로젝트의 src/main/resources 디렉터리에 application.yml 파일을 만들거나 추가합니다. Spring Boot가 기본적으로 구성 파일을 찾는 곳입니다. 이 파일은 일반적인 구성을 추가할 수 있습니다.
그런 다음 동일한 디렉터리에 application-test.yml, application-prod.yml 등과 같은 파일을 만들 수도 있습니다. Spring Boot는 이러한 프로필별 구성 파일을 자동으로 인식합니다. 데이터베이스 주소, Redis 캐시 주소 등과 같은 다양한 환경에 대한 매개변수를 이러한 파일에 정의할 수 있습니다.
즉, src/main/resources 디렉터리에는 다음과 같은 여러 파일이 있을 수 있습니다.
application.yml
application-prod.yml
application-test.yml
그런 다음 application-test.yml 및 application-prod.yml을 사용하여 구성은 동일하지만 값이 다른 두 변수를 선언할 수 있습니다.예를 들어
애플리케이션-테스트.yml:
mysql:
url: https://xx.test.com/mysql
application-prod.yml:
mysql:
url: https://xx.online.com/mysql
Java 코드에서는 이 URL을 동적으로 사용할 수 있습니다.
@Value("${mysql.url}")
protected String mysqlUrl;
완벽한.
그렇다면 시스템이 실행 중일 때 해당 profile-Specific.yml 파일을 자동으로 사용하려면 어떻게 해야 할까요?아래를 봐주세요
환경 변수가 외부 네트워크에서 계층별로 프로젝트에 어떻게 전달되는지 살펴보겠습니다.
우선, Java 프로젝트는 일반적으로 docker로 패키지됩니다. 이제 도커부터 시작해 보겠습니다.
docker build -f assistant-web-api/qke/Dockerfile -t docker-registry.qiyi.virtual/mbd-ai/assistant-web-api-test:$tag . --build-arg dc_env=test
핵심 단어,빌드-인수 , 매개변수 dc_env=test를 설정합니다.
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
-P는 프로필 설정을 의미합니다.
이전 단계의 mvn 명령에 -P가 추가되었습니다. 어디에 사용됩니까? 물론 marven 구성 파일인 pom.xml에 있습니다.
<profiles>
<profile>
<id>test</id>
<properties>
<profile.active>test</profile.active>
<log.env>test</log.env>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profile.active>prod</profile.active>
<log.env>prod</log.env>
</properties>
</profile>
</profiles>
위에는 환경변수 2개가 추가되었습니다.각 변수에 대해 속성이 설정됩니다.프로필.활성
이 값은 어디에 사용될 수 있나요?
기본 application.yml 파일에서 사용하세요!
server:
profiles:
active: @profile.active@
이전 단계의 profile.active 변수 값을 기반으로 사용할 프로필을 정의합니다.
그 이후로 docker 패키지에서 정의된 변수가 기본 yml 파일에 전달되었습니다. 이 파일에서는 server.profiles.active 값에 관계없이 어떤 하위 yml 구성이 사용됩니다. 예를 들어 테스트인 경우 application-test.yml 구성이 로드됩니다! ! !
먼저 marven이 먼저 동기화합니다. 동기화 후 환경을 확인하세요.
그런 다음 로컬로 컴파일 및 패키징하고 -P를 통해 환경 변수를 지정합니다.
마지막으로 실행하려면 아래 그림의 오른쪽 상단을 클릭하면 Edit Configuration 팝업 창이 나타납니다. Active Profile에 해당 환경 변수(예: test)를 입력합니다.
마지막으로 실행을 클릭하면 됩니다!