国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Spring Boot [配置-上篇]

xuweijian / 618人閱讀

摘要:在年首次發(fā)表了這種語(yǔ)言,另外與也是這語(yǔ)言的共同設(shè)計(jì)者。每種都可以通過配置使用控制臺(tái)或者文件輸出日志內(nèi)容。可以通過是中的一個(gè)設(shè)置的日志級(jí)別。參考文檔新年彩蛋自定義參考指南配置類配置詳解

導(dǎo)讀:

在上篇文章學(xué)習(xí)到了如何搭建一個(gè)簡(jiǎn)單的Spring Boot的項(xiàng)目,這篇文章我們主要圍繞Spring Boot的外部化文件展開,

快速開始:外部化配置

首先是一個(gè)典型的Spring Boot的項(xiàng)目結(jié)構(gòu)如下

com
 +- example
     +- myproject
         +- Application.java
         |
         +- domain
         |   +- Customer.java
         |   +- CustomerRepository.java
         |
         +- service
         |   +- CustomerService.java
         |
         +- web
             +- CustomerController.java                 

然后我們所有的資源文件都統(tǒng)一放在resources目錄下,結(jié)構(gòu)如下:

static
 +- css
 |   +- style.css
 |   +- common.css
 +- js
 |   +- index.js
 +- img
     +- img.png
     
templates
 +- index.html
 |   
 +- pages
 |   +- page.html

我們所有的配置文件都默認(rèn)放在在resources目錄下

1.自定義banner:

我們只需要在Spring Boot工程的/src/main/resources目錄下創(chuàng)建一個(gè)banner.txt文件,然后將ASCII字符畫復(fù)制進(jìn)去,就能替換默認(rèn)的banner了。這是一個(gè)自定義的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}:設(shè)置控制臺(tái)中輸出內(nèi)容的顏色

${application.version}:用來獲取MANIFEST.MF文件中的版本號(hào)

${application.formatted-version}:格式化后的${application.version}版本信息

${spring-boot.version}:Spring Boot的版本號(hào)

${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是一個(gè)可讀性高,用來表達(dá)數(shù)據(jù)序列的格式。YAML參考了其他多種語(yǔ)言,包括:C語(yǔ)言、Python、Perl,并從XML、電子郵件的數(shù)據(jù)格式(RFC 2822)中獲得靈感。Clark Evans在2001年首次發(fā)表了這種語(yǔ)言[1],另外Ingy d?t Net與Oren Ben-Kiki也是這語(yǔ)言的共同設(shè)計(jì)者[2]。目前已經(jīng)有數(shù)種編程語(yǔ)言或腳本語(yǔ)言支持(或者說解析)這種語(yǔ)言。引自維基百科
為什么使用YML:
在以往的項(xiàng)目中一寫關(guān)于數(shù)據(jù)庫(kù)之類的配置通常都會(huì)寫在Properties中,YAML的作用與Properties類似都是用來配置一些屬性值的,但是YAML相比于Properties要更加簡(jiǎn)潔,在項(xiàng)目中推薦使用YAML代替Properties,默認(rèn)名稱為application.yml
Spring Boot 中的yml:
Spring框架提供兩個(gè)便利的類用于加載YAML文檔,YamlPropertiesFactoryBean會(huì)將YAML作為Properties來加載,YamlMapFactoryBean會(huì)將YAML作為Map來加載。
示例:

environments:
    dev:
        url: http://dev.bar.com
        name: Developer Setup
    prod:
        url: http://foo.bar.com
        name: My Cool App

上面的YAML文檔會(huì)被轉(zhuǎn)化到下面的屬性中:

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

將會(huì)轉(zhuǎn)化到下面的屬性中:

my.servers[0]=dev.bar.com
my.servers[1]=foo.bar.com

使用Spring DataBinder工具綁定那樣的屬性(這是@ConfigurationProperties做的事),你需要確定目標(biāo)bean中有個(gè)java.util.List或Set類型的屬性,并且需要提供一個(gè)setter或使用可變的值初始化它,比如,下面的代碼將綁定上面的屬性:

@Component
@ConfigurationProperties(prefix="my")
public class Config {
    private List servers = new ArrayList();
    public List getServers() {
        return this.servers;
    }
}

一個(gè)配置數(shù)據(jù)庫(kù)連接的示例:

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

數(shù)據(jù)的松散綁定:

@Component
@ConfigurationProperties(prefix="person")
public class ConnectionSettings {
    private String firstName;
}

下面的屬性名都能用于上面的@ConfigurationProperties類:

person.firstName 標(biāo)準(zhǔn)駝峰規(guī)則

person.first-name 虛線表示,推薦用于.properties和.yml文件中

PERSON_FIRST_NAME 大寫形式,使用系統(tǒng)環(huán)境變量時(shí)推薦

了解更多的 常見應(yīng)用屬性
了解更多 Spring Boot 中的yml使用

3.日志格式化

Spring Boot在所有內(nèi)部日志中使用Commons Logging,但是默認(rèn)配置也提供了對(duì)常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每種Logger都可以通過配置使用控制臺(tái)或者文件輸出日志內(nèi)容。
Spring Boot默認(rèn)的日志輸出格式如下:

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

默認(rèn)情況下,Spring Boot只會(huì)將日志記錄到控制臺(tái)而不會(huì)寫進(jìn)日志文件。可以通過"logging.level.*=LEVEL"("LEVEL"是TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF中的一個(gè))設(shè)置的日志級(jí)別。如果除了輸出到控制臺(tái)你還想寫入到日志文件,那你需要設(shè)置logging.file或logging.path屬性。

下面是一個(gè)使用YML配置打印路徑及級(jí)別的例子:

logging:
  level:
    org.hibernate: ERROR
    org.springframework : DEBUG
      
  path: /logs
  file: myapp.log

日志管理
Spring Boot 日志記錄 SLF4J
Spring Boot日志管理

結(jié)語(yǔ):

在這篇文章中對(duì)Spring Boot 中常用的外置化配置做了一個(gè)簡(jiǎn)要的介紹,在下一篇文章將會(huì)介紹關(guān)于 使用配置類。

參考文檔:

新年彩蛋:Spring Boot自定義Banner
《Spring Boot參考指南》-配置類
Spring boot(2)-配置詳解

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/66747.html

相關(guān)文章

  • 架構(gòu)~微服務(wù) - 收藏集 - 掘金

    摘要:它就是史上最簡(jiǎn)單的教程第三篇服務(wù)消費(fèi)者后端掘金上一篇文章,講述了通過去消費(fèi)服務(wù),這篇文章主要講述通過去消費(fèi)服務(wù)。概覽和架構(gòu)設(shè)計(jì)掘金技術(shù)征文后端掘金是基于的一整套實(shí)現(xiàn)微服務(wù)的框架。 Spring Boot 配置文件 – 在坑中實(shí)踐 - 后端 - 掘金作者:泥瓦匠鏈接:Spring Boot 配置文件 – 在坑中實(shí)踐版權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)注明出處本文提綱一、自動(dòng)配置二、自定義屬性三、ran...

    church 評(píng)論0 收藏0
  • Spring Boot [Hello World]

    摘要:默認(rèn)使用了內(nèi)嵌容器支持開箱即用。備注關(guān)于第三步注解的一些描述該注解是引入的。查看源碼可知其包含了和注解。我們可以將其看做對(duì)注解的增強(qiáng)與細(xì)分常用來返回格式的數(shù)據(jù)。 導(dǎo)讀: 通過上篇文章, 我們已經(jīng)了解到了 Spring Boot 作為一個(gè)Spring的腳手架, 其核心思想便是約定大于配置,通過一層層的封裝讓我們可以在最短的時(shí)間內(nèi)搭建一個(gè)web項(xiàng)目,從繁瑣的配置中走出來更加關(guān)注業(yè)務(wù)代碼。...

    OnlyMyRailgun 評(píng)論0 收藏0
  • 5、springcloud整合mybatis注解方式

    摘要:上一篇學(xué)習(xí)了服務(wù)提供者,但是并不是單單就學(xué)習(xí)了服務(wù)提供者。中間還穿插使用了數(shù)據(jù)源和整合。但是上篇使用時(shí)還是沿用了老的方式,需要配置對(duì)應(yīng)的文件。 1、上一篇學(xué)習(xí)了服務(wù)提供者provider,但是并不是單單就學(xué)習(xí)了服務(wù)提供者。中間還穿插使用了Hikari數(shù)據(jù)源和spring cloud整合mybatis。但是上篇使用mybatis時(shí)還是沿用了老的方式,需要配置mapper對(duì)應(yīng)的xml文件。...

    ingood 評(píng)論0 收藏0
  • 架構(gòu)~微服務(wù)

    摘要:接下來繼續(xù)介紹三種架構(gòu)模式,分別是查詢分離模式微服務(wù)模式多級(jí)緩存模式。分布式應(yīng)用程序可以基于實(shí)現(xiàn)諸如數(shù)據(jù)發(fā)布訂閱負(fù)載均衡命名服務(wù)分布式協(xié)調(diào)通知集群管理選舉分布式鎖和分布式隊(duì)列等功能。 SpringCloud 分布式配置 SpringCloud 分布式配置 史上最簡(jiǎn)單的 SpringCloud 教程 | 第九篇: 服務(wù)鏈路追蹤 (Spring Cloud Sleuth) 史上最簡(jiǎn)單的 S...

    xinhaip 評(píng)論0 收藏0
  • Spring Boot [配置-下篇]

    摘要:進(jìn)行異常的捕捉與錯(cuò)誤信息頁(yè)面的定制。告訴,這是一個(gè)對(duì)象,該對(duì)象應(yīng)該被注冊(cè)為在應(yīng)用程序上下文中的。不同框架的不同配置這里以作為演示默認(rèn)情況下,保護(hù)已啟用。你必須配置包含令牌的所有的網(wǎng)頁(yè)來工作。該命名結(jié)構(gòu)旨在幫你找到需要的。 導(dǎo)讀: 在上篇文章中我們了解到Spring Boot 的一些常用的外部化配置,在本篇中我們將會(huì)繼續(xù)對(duì)類的配置進(jìn)行了解 一個(gè)簡(jiǎn)單的例子[錯(cuò)誤頁(yè)面定制]: 在 Spr...

    StonePanda 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

xuweijian

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<