摘要:你是否為一個功能多個和多個文件區分不同運行環境配置,經常為這些配置文件的管理而頭疼,現在通過這篇文章,將徹底解決你的煩惱,這篇文篇介紹,怎么通過文件構建多文檔塊,區分不同環境配置,自由切換不同環境啟動項目,一個配置文件搞定。
你是否為SpringBoot一個功能多個yml和多個properties文件區分不同運行環境配置,經常為這些配置文件的管理而頭疼,現在通過這篇文章,將徹底解決你的煩惱,這篇文篇介紹,怎么通過yml文件構建多文檔塊,區分不同環境配置,自由切換不同環境啟動項目,一個配置文件搞定。
YAML簡介YAML是“YAML不是一種標記語言”的外語縮寫(見前方參考資料原文內容);但為了強調這種語言以數據做為中心,而不是以置標語言為重點,而用返璞詞重新命名。它是一種直觀的能夠被電腦識別的數據序列化格式,是一個可讀性高并且容易被人類閱讀,容易和腳本語言交互,用來表達資料序列的編程語言。
它是類似于標準通用標記語言的子集XML的數據描述語言,語法比XML簡單很多。
基本語法結構多行縮進
數據結構可以用類似大綱的縮排方式呈現,結構通過縮進來表示,連續的項目通過減號“-”來表示,map結構里面的key/value對用冒號“:”來分隔。樣例如下:
house: family: name: Doe parents: - John - Jane children: - Paul - Mark - Simone address: number: 34 street: Main Street city: Nowheretown zipcode: 12345
注意:
1.字串不一定要用雙引號標識; 2.在縮排中空白字符的數目并不是非常重要,只要相同階層的元素左側對齊就可以了(不過不能使用`TAB`字符); 3.允許在文件中加入選擇性的空行,以增加可讀性; 4. 在一個檔案中,可同時包含多個文件,并用`“——”`分隔; 5.選擇性的符號`“...”`可以用來表示檔案結尾(在利用串流的通訊中,這非常有用,可以在不關閉串流的情況下,發送結束訊號)。
單行縮寫
YAML也有用來描述好幾行相同結構的數據的縮寫語法,數組用"[]"包括起來,hash用"{}"來包括。因此,上面的這個YAML能夠縮寫成這樣:
house: family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] } address: { number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 }準備工作
環境:
windows jdk 8 maven 3.0 IDEA構建工程
修改YML配置4.0.0 cn.zhangbox spring-boot-study 1.0-SNAPSHOT cn.zhangbox spring-boot-02-config 0.0.1-SNAPSHOT jar spring-boot-02-config Demo project for Spring Boot UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-configuration-processor true org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin
#選擇哪一個環境的配置 #這里可以在每個環境配置redis,數據庫(mysql),消息(kafka)等相關的組件的配置 spring: profiles: active: prod #文檔塊區分為三個--- --- server: port: 8081 spring: profiles: test #文檔塊區分為三個--- --- server: port: 8082 spring: profiles: test #文檔塊區分為三個--- --- server: port: 8083 spring: profiles: prod創建啟動類
@SpringBootApplication public class SpringBootConfigApplication { public static void main(String[] args) { SpringApplication.run(SpringBootConfigApplication.class, args); } }控制臺打印
. ____ _ __ _ _ / / ___"_ __ _ _(_)_ __ __ _ ( ( )\___ | "_ | "_| | "_ / _` | / ___)| |_)| | | | | || (_| | ) ) ) ) " |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.9.RELEASE) 2018-07-04 15:07:26.214 INFO 14812 --- [ main] c.z.s.SpringBootConfigApplication : Starting SpringBootConfigApplication on MS-20180428GSYE with PID 14812 (C:UsersAdministratorDesktopspring-boot-02-config argetclasses started by Administrator in C:UsersAdministratorDesktopspring-boot-02-config) 2018-07-04 15:07:26.219 INFO 14812 --- [ main] c.z.s.SpringBootConfigApplication : The following profiles are active: prod 2018-07-04 15:07:26.281 INFO 14812 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3f57bcad: startup date [Wed Jul 04 15:07:26 GMT+08:00 2018]; root of context hierarchy 2018-07-04 15:07:28.988 INFO 14812 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8083 (http) 2018-07-04 15:07:29.029 INFO 14812 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2018-07-04 15:07:29.031 INFO 14812 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.23 2018-07-04 15:07:29.184 INFO 14812 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2018-07-04 15:07:29.184 INFO 14812 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 2909 ms 2018-07-04 15:07:29.419 INFO 14812 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: "dispatcherServlet" to [/] 2018-07-04 15:07:29.424 INFO 14812 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: "characterEncodingFilter" to: [/*] 2018-07-04 15:07:29.424 INFO 14812 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: "hiddenHttpMethodFilter" to: [/*] 2018-07-04 15:07:29.424 INFO 14812 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: "httpPutFormContentFilter" to: [/*] 2018-07-04 15:07:29.424 INFO 14812 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: "requestContextFilter" to: [/*] 2018-07-04 15:07:30.605 INFO 14812 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@3f57bcad: startup date [Wed Jul 04 15:07:26 GMT+08:00 2018]; root of context hierarchy 2018-07-04 15:07:30.731 INFO 14812 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 2018-07-04 15:07:30.732 INFO 14812 --- [ 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.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 2018-07-04 15:07:30.777 INFO 14812 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-07-04 15:07:30.777 INFO 14812 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-07-04 15:07:30.833 INFO 14812 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-07-04 15:07:31.166 INFO 14812 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2018-07-04 15:07:31.470 INFO 14812 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8083 (http) 2018-07-04 15:07:31.475 INFO 14812 --- [ main] c.z.s.SpringBootConfigApplication : Started SpringBootConfigApplication in 5.897 seconds (JVM running for 7.324)
至此YML多文檔塊多環境配置是不是非常簡單,切換環境只需要修改
spring: profiles: active: prod
中active對應的環境的值即可。
源碼地址Spring Boot多文檔塊多數據源源碼
歡迎關注我的微信公眾號獲取更多更全的學習資源,視頻資料,技術干貨!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71484.html
摘要:簡介它的設計目的就是為例簡化開發,開啟了各種自動裝配,你不想寫各種配置文件,引入相關的依賴就能迅速搭建起一個工程。它采用的是建立生產就緒的應用程序觀點,優先于配置的慣例。另,本系列教程全部用的作為開發工具。 簡介 spring boot 它的設計目的就是為例簡化開發,開啟了各種自動裝配,你不想寫各種配置文件,引入相關的依賴就能迅速搭建起一個web工程。它采用的是建立生產就緒的應用程序觀...
摘要:創建過程同類似創建完如下通過注解表明自己是一個僅僅是不夠的,還需要在配置文件中注明自己的服務注冊中心的地址,配置文件如下需要指明這個很重要,這在以后的服務與服務之間相互調用一般都是根據這個。 轉載請標明出處: http://blog.csdn.net/forezp/a...本文出自方志朋的博客 一、spring cloud簡介 spring cloud 為開發人員提供了快速構建分布式系...
摘要:下一篇介紹基于的服務注冊與調用。服務提供者工程配置這里服務提供者是使用之前進階教程第三篇整合連接池以及監控改造而來,這里一樣的部分就不再重復說明,下面將說明新增的部分。 Spring Cloud簡介 Spring Cloud是一個基于Spring Boot實現的云應用開發工具,它為基于JVM的云應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分...
閱讀 4576·2021-09-22 14:57
閱讀 561·2019-08-30 15:56
閱讀 2663·2019-08-30 15:53
閱讀 2239·2019-08-29 14:15
閱讀 1688·2019-08-28 17:54
閱讀 559·2019-08-26 13:37
閱讀 3477·2019-08-26 10:57
閱讀 1046·2019-08-26 10:32