摘要:在年首次發表了這種語言,另外與也是這語言的共同設計者。每種都可以通過配置使用控制臺或者文件輸出日志內容。可以通過是中的一個設置的日志級別。參考文檔新年彩蛋自定義參考指南配置類配置詳解
導讀:
在上篇文章學習到了如何搭建一個簡單的Spring Boot的項目,這篇文章我們主要圍繞Spring Boot的外部化文件展開,
快速開始:外部化配置首先是一個典型的Spring Boot的項目結構如下
com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- web +- CustomerController.java
然后我們所有的資源文件都統一放在resources目錄下,結構如下:
static +- css | +- style.css | +- common.css +- js | +- index.js +- img +- img.png templates +- index.html | +- pages | +- page.html
我們所有的配置文件都默認放在在resources目錄下
1.自定義banner:我們只需要在Spring Boot工程的/src/main/resources目錄下創建一個banner.txt文件,然后將ASCII字符畫復制進去,就能替換默認的banner了。這是一個自定義的banner.txt文件
${AnsiColor.BRIGHT_GREEN} ______ _ ______ / _____) (_) (____ _ ( (____ ____ ____ _ ____ ____ ____) ) ___ ___ _| |_ \____ | _ / ___)| || _ / _ | | __ ( / _ / _ (_ _) _____) )| |_| || | | || | | |( (_| | | |__) )| |_| || |_| | | |_ (______/ | __/ |_| |_||_| |_| \___ | |______/ \___/ \___/ \__) |_| (_____| ${AnsiColor.BRIGHT_RED} Application Version: ${application.version}${application.formatted-version} Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
在banner.txt中可以使用如下的變量:
${AnsiColor.BRIGHT_RED}:設置控制臺中輸出內容的顏色
${application.version}:用來獲取MANIFEST.MF文件中的版本號
${application.formatted-version}:格式化后的${application.version}版本信息
${spring-boot.version}:Spring Boot的版本號
${spring-boot.formatted-version}:格式化后的${spring-boot.version}版本信息
打印效果圖:
備注:
banner的字符畫的生成工具:
http://patorjk.com/software/taag
http://www.network-science.de...
http://www.degraeve.com/img2t...
2.YAML文件什么是YAML:
YAML是一個可讀性高,用來表達數據序列的格式。YAML參考了其他多種語言,包括:C語言、Python、Perl,并從XML、電子郵件的數據格式(RFC 2822)中獲得靈感。Clark Evans在2001年首次發表了這種語言[1],另外Ingy d?t Net與Oren Ben-Kiki也是這語言的共同設計者[2]。目前已經有數種編程語言或腳本語言支持(或者說解析)這種語言。引自維基百科
為什么使用YML:
在以往的項目中一寫關于數據庫之類的配置通常都會寫在Properties中,YAML的作用與Properties類似都是用來配置一些屬性值的,但是YAML相比于Properties要更加簡潔,在項目中推薦使用YAML代替Properties,默認名稱為application.yml。
Spring Boot 中的yml:
Spring框架提供兩個便利的類用于加載YAML文檔,YamlPropertiesFactoryBean會將YAML作為Properties來加載,YamlMapFactoryBean會將YAML作為Map來加載。
示例:
environments: dev: url: http://dev.bar.com name: Developer Setup prod: url: http://foo.bar.com name: My Cool App
上面的YAML文檔會被轉化到下面的屬性中:
environments.dev.url=http://dev.bar.com environments.dev.name=Developer Setup environments.prod.url=http://foo.bar.com environments.prod.name=My Cool App
使用:
YAML列表被表示成使用[index]間接引用作為屬性keys的形式,例如下面的YAML:
my: servers: - dev.bar.com - foo.bar.com
將會轉化到下面的屬性中:
my.servers[0]=dev.bar.com my.servers[1]=foo.bar.com
使用Spring DataBinder工具綁定那樣的屬性(這是@ConfigurationProperties做的事),你需要確定目標bean中有個java.util.List或Set類型的屬性,并且需要提供一個setter或使用可變的值初始化它,比如,下面的代碼將綁定上面的屬性:
@Component @ConfigurationProperties(prefix="my") public class Config { private Listservers = new ArrayList (); public List getServers() { return this.servers; } }
一個配置數據庫連接的示例:
spring: datasource: platform: mysql type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&useSSL=false username: root password: root
數據的松散綁定:
@Component @ConfigurationProperties(prefix="person") public class ConnectionSettings { private String firstName; }
下面的屬性名都能用于上面的@ConfigurationProperties類:
person.firstName 標準駝峰規則
person.first-name 虛線表示,推薦用于.properties和.yml文件中
PERSON_FIRST_NAME 大寫形式,使用系統環境變量時推薦
了解更多的 常見應用屬性
了解更多 Spring Boot 中的yml使用
Spring Boot在所有內部日志中使用Commons Logging,但是默認配置也提供了對常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每種Logger都可以通過配置使用控制臺或者文件輸出日志內容。
Spring Boot默認的日志輸出格式如下:
2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.52 2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1358 ms 2014-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: "dispatcherServlet" to [/] 2014-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: "h
默認情況下,Spring Boot只會將日志記錄到控制臺而不會寫進日志文件。可以通過"logging.level.*=LEVEL"("LEVEL"是TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF中的一個)設置的日志級別。如果除了輸出到控制臺你還想寫入到日志文件,那你需要設置logging.file或logging.path屬性。
下面是一個使用YML配置打印路徑及級別的例子:
logging: level: org.hibernate: ERROR org.springframework : DEBUG path: /logs file: myapp.log
日志管理
Spring Boot 日志記錄 SLF4J
Spring Boot日志管理
在這篇文章中對Spring Boot 中常用的外置化配置做了一個簡要的介紹,在下一篇文章將會介紹關于 使用配置類。
參考文檔:新年彩蛋:Spring Boot自定義Banner
《Spring Boot參考指南》-配置類
Spring boot(2)-配置詳解
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/66747.html
摘要:它就是史上最簡單的教程第三篇服務消費者后端掘金上一篇文章,講述了通過去消費服務,這篇文章主要講述通過去消費服務。概覽和架構設計掘金技術征文后端掘金是基于的一整套實現微服務的框架。 Spring Boot 配置文件 – 在坑中實踐 - 后端 - 掘金作者:泥瓦匠鏈接:Spring Boot 配置文件 – 在坑中實踐版權歸作者所有,轉載請注明出處本文提綱一、自動配置二、自定義屬性三、ran...
摘要:默認使用了內嵌容器支持開箱即用。備注關于第三步注解的一些描述該注解是引入的。查看源碼可知其包含了和注解。我們可以將其看做對注解的增強與細分常用來返回格式的數據。 導讀: 通過上篇文章, 我們已經了解到了 Spring Boot 作為一個Spring的腳手架, 其核心思想便是約定大于配置,通過一層層的封裝讓我們可以在最短的時間內搭建一個web項目,從繁瑣的配置中走出來更加關注業務代碼。...
摘要:上一篇學習了服務提供者,但是并不是單單就學習了服務提供者。中間還穿插使用了數據源和整合。但是上篇使用時還是沿用了老的方式,需要配置對應的文件。 1、上一篇學習了服務提供者provider,但是并不是單單就學習了服務提供者。中間還穿插使用了Hikari數據源和spring cloud整合mybatis。但是上篇使用mybatis時還是沿用了老的方式,需要配置mapper對應的xml文件。...
摘要:進行異常的捕捉與錯誤信息頁面的定制。告訴,這是一個對象,該對象應該被注冊為在應用程序上下文中的。不同框架的不同配置這里以作為演示默認情況下,保護已啟用。你必須配置包含令牌的所有的網頁來工作。該命名結構旨在幫你找到需要的。 導讀: 在上篇文章中我們了解到Spring Boot 的一些常用的外部化配置,在本篇中我們將會繼續對類的配置進行了解 一個簡單的例子[錯誤頁面定制]: 在 Spr...
閱讀 841·2019-08-30 15:54
閱讀 450·2019-08-30 12:51
閱讀 2037·2019-08-29 16:28
閱讀 2854·2019-08-29 16:10
閱讀 2341·2019-08-29 14:21
閱讀 419·2019-08-29 14:09
閱讀 2140·2019-08-23 16:13
閱讀 1245·2019-08-23 13:59