1. 程式人生 > >SpringBoot實現多環境配置

SpringBoot實現多環境配置

running source ted ram exp active start 數據 amp

1.為什麽需要配置多環境配置

在實際的開發中,我們往往需要在不同的環境中使用不同的數據庫、緩存配置,如果使用同一套配置文件,在不同環境部署的時候手動去修改配置文件,會使部署變得很繁瑣。使用多環境配置文件可以很方便的實現此功能。

1.創建不同環境的配置文件

在resource文件夾中添加一下配置文件:

application-dev.properties //開發環境配置文件
application-rc.properties //線上環境配置文件
application-test.properties //測試環境配置文件

2. 選擇使用的配置文件

在resource/application.properties配置文件中添加一下配置項目:

spring.profiles.active=dev

此配置用於選擇使用的配置環境,值為application-{profile}.properties中的profile值。

3.使用命令行選擇使用的配置文件

SpringBoot還支持通過命令行的方式修改配置,使用方式如下:

java -jar xxx.jar --spring.profiles.active=dev

其中--spring.profiles.active=dev相當於在application.properties文件中加入了此配置。

4.測試多環境配置

我們分別在

application-dev.properties //開發環境配置文件
application-rc.properties //線上環境配置文件
application-test.properties //測試環境配置文件

文件中添加以下配置:

#端口號
server.port=8081
server.port=8082
server.port=8083

依次修改application.properties文件中的以下配置:

spring.profiles.active=dev、test、rc

修改後依次重啟服務。
當使用dev的時候控制臺輸出一下內容:

    2018-04-10 20:29:23.841  INFO 11492 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-04-10 20:29:23.871  INFO 11492 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-04-10 20:29:23.871  INFO 11492 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-04-10 20:29:23.961  INFO 11492 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-04-10 20:29:24.011  INFO 11492 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path '/demo'
2018-04-10 20:29:24.011  INFO 11492 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 2.271 seconds (JVM running for 2.608)

使用test的時候控制臺輸出一下內容:

2018-04-10 20:30:17.458  INFO 12824 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-04-10 20:30:17.498  INFO 12824 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8083 (http) with context path '/demo'
2018-04-10 20:30:17.508  INFO 12824 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 2.268 seconds (JVM running for 2.609)

使用rc的時候輸出以下內容:

2018-04-10 20:31:14.302  INFO 11972 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8083 (http) with context path '/demo'
2018-04-10 20:31:14.312  INFO 11972 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 2.133 seconds (JVM running for 2.488)

可以看出在服務啟動的時候分別用了不同的配置文件。

SpringBoot實現多環境配置