SpringBoot는 프로필을 사용하여 공통 개발 환경, 테스트 환경 및 프로덕션 환경과 같은 다양한 환경에서 구성 전환을 달성합니다.
SpringBoot에서 일반적으로 사용되는 구성 파일에는 속성 파일과 yml 파일이라는 두 가지 주요 유형이 있습니다. 속성 파일의 경우 주로 여러 프로필 구성 파일을 통해 구현되고, yml 파일의 경우 주로 여러 조각을 통해 구현됩니다(구성 조각은 yml 파일에서 세 개의 가로 막대로 나뉩니다).
Profile은 실제 작업에서 사용하기 더 편리합니다. SpringBoot 프로그램이 개발된 후에는 최종적으로 jar 패키지로 패키징되어 사용하게 됩니다. 외부 구성 파일에 프로필 이름을 지정하여 사용할 수 있습니다. 사용할 환경(개발 환경, 테스트 환경, 프로덕션 환경)의 구성 매개변수입니다.
이 블로그의 데모에서는 2개의 SpringBoot 프로젝트를 구축하여 각각 2개의 프로필을 사용하는 방법을 보여줍니다.
Demo1은 여러 속성 파일을 통해 구현되고 Demo2는 단일 yml 파일을 통해 구현됩니다.
SpringBoot의 경우 클래스를 작성하면 패키지 또는 하위 패키지 아래에 있습니다. 시작 클래스가 있는 경우에는 시작 클래스에 검색 패키지를 구성할 필요가 없습니다. 왜냐하면 SpringBoot는 기본적으로 시작 클래스가 있는 패키지와 해당 하위 패키지 아래의 모든 클래스 파일에서 주석을 검색하기 때문입니다. 따라서 데모의 편의를 위해 후속 데모에서는 시작 클래스가 있는 패키지 또는 하위 패키지 아래에 클래스 파일을 작성합니다.
동일한 코드를 가진 TestController 클래스는 매개변수 없는 인터페이스 액세스를 제공하기 위해 두 데모 모두에 작성되었습니다. 반환된 결과는 현재 활성화된 프로필 이름과 프로필 구성 파일에 구성된 포트 번호이므로 모든 사람이 데모를 수행하는 데 편리합니다. 테스트 결과를 확인할 때 IDEA 콘솔에 출력된 정보를 직접 확인하여 결과를 확인할 수도 있습니다. TestController 클래스의 구체적인 내용은 다음과 같습니다.
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @Autowired private Environment env; @RequestMapping("/getport") public String getPort() { StringBuilder sb = new StringBuilder(); String[] activeProfiles = env.getActiveProfiles(); sb.append("启动的 profile 名称为:").append(activeProfiles[0]); sb.append("<br/>"); String portValue = env.getProperty("server.port"); sb.append("启动的端口为:").append(portValue); return sb.toString(); } }
Demo1의 SpringBoot 프로그램은 속성 파일을 구성 파일로 사용하므로 다중 파일 구성 방법을 사용하여 프로필을 구현합니다. .
SpringBoot의 구성 파일은 application으로 시작해야 합니다. Demo1에서는 profile 다중 환경 구성을 구현하기 위해 application-profile name.properties의 명명 형식을 사용합니다. 속성이 사용되는 경우, application-pro.properties 3개 파일은 개발 환경, 테스트 환경 및 프로덕션 환경의 구성 파일을 나타냅니다. 구성 내용은 편의상 여기서는 데모를 위해 SpringBoot의 시작 포트만 구성합니다.
# application-dev.properties 配置内容 # 配置文件必须以 application 开头 # 后面的 dev 表示 profile 配置文件的名称 server.port=8081 # application-test.properties 配置内容 # 配置文件必须以 application 开头 # 后面的 test 表示 profile 配置文件的名称 server.port=8082 # application-pro.properties 配置内容 # 配置文件必须以 application 开头 # 后面的 pro 表示 profile 配置文件的名称 server.port=8083
# application-pro.properties 配置内容 # 本 Demo 中编写了多个以 application 开头的配置文件 # 通过以下配置项指定 profile 名称,设置所要启动的配置文件 spring.profiles.active=test
# 本 Demo 中只编写了一个 application.yml 的配置文件 # 通过三个横杠(---)来分隔开 3 种配置文件 # 通过 spring.config.activate.on-profile 设置 profile 的名称 # 通过以下配置项指定 profile 名称,设置所要启动的配置文件 spring: profiles: active: pro --- server: port: 9091 spring: config: activate: on-profile: dev --- server: port: 9092 spring: config: activate: on-profile: test --- server: port: 9093 spring: config: activate: on-profile: pro
D:\javacode\demo1> java -jar .\demo1-0.0.1-SNAPSHOT.jar --spring.config.location=.\application.properties
D:\javacode\demo2> java -jar .\demo2-0.0.1-SNAPSHOT.jar --spring.config.location=.\application.yml
위 내용은 SpringBoot는 Profile을 통해 다양한 환경에서 구성 전환을 어떻게 실현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!