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

資訊專欄INFORMATION COLUMN

Spring Boot - 靜態(tài)資源處理、啟動加載、日志處理

or0fun / 2143人閱讀

摘要:靜態(tài)資源處理啟動加載日志處理回顧初識過濾器監(jiān)聽器攔截器我們通過啟動日志,可以發(fā)現(xiàn),默認(rèn)提供了靜態(tài)資源處理。

Spring Boot - 靜態(tài)資源處理、啟動加載、日志處理 回顧

Spring Boot-初識 Hello World

Spring Boot - Servlet、過濾器、監(jiān)聽器、攔截器

我們通過啟動日志,可以發(fā)現(xiàn),spring boot 默認(rèn)提供了靜態(tài)資源處理。接下來,我們了解下,該如何應(yīng)用默認(rèn)配置,如何自定義靜態(tài)資源處理。

INFO  o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
INFO  o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
INFO  o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 
靜態(tài)資源處理

建議大家使用Spring Boot的默認(rèn)配置方式,如果需要特殊處理的再通過配置進(jìn)行修改。本文主要講解Spring Boot的默認(rèn)處理方式

默認(rèn)資源映射

其中默認(rèn)配置的 /** 映射到 /static (或/public、/resources、/META-INF/resources)

優(yōu)先級順序?yàn)椋篗ETA-INF/resources > resources > static > public

目錄結(jié)構(gòu):

自定義資源映射

上面我們介紹了Spring Boot 的默認(rèn)資源映射,一般夠用了,那我們?nèi)绾巫远x目錄?

增加 /2017imgs/ 映射到 classpath:/2017imgs/

實(shí)現(xiàn)類Config繼承 WebMvcConfigurerAdapter 并重寫方法 addResourceHandlers

在resources目錄下,增加2017imgs文件夾

package com.wanye;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * Created by wanye on 2017/6/3.
 */
@Configuration
public class Config extends WebMvcConfigurerAdapter{
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/2017imgs/**").addResourceLocations("classpath:/2017imgs/");
    }
}  

訪問2017imgs文件夾中的demo.jpg 圖片的地址為 http://localhost:8080/2017img...

實(shí)際工作中,我們自己處理靜態(tài)資源的情況是非常少的,靜態(tài)資源大多數(shù)情況,都被放在多帶帶的靜態(tài)資源服務(wù)器,并且通過cdn來加速訪問。

配置特殊的擴(kuò)展名

2017-06-15追加
看到Springboot 配置*.do請求這樣一個問題,作答如下
先說一下思路:
1.dispatcherServlet會接管所有請求(包括靜態(tài)資源請求),如果修改默認(rèn)的UrlMapping為*.do,那么一定會導(dǎo)致靜態(tài)資源無法加載。
2.仔細(xì)思考一下題主的的場景,目的希望所有*.do(擴(kuò)展名)的請求,映射到controller中的method上。(對嗎?)
3.那么問題就簡單了,參考@RequestMapping所使用的規(guī)則

 * 

The mapping matches URLs using the following rules:
*

    *
  • {@code ?} matches one character
  • *
  • {@code *} matches zero or more characters
  • *
  • {@code **} matches zero or more directories in a path
  • *
  • {@code {spring:[a-z]+}} matches the regexp {@code [a-z]+} as a path variable named "spring"
  • *

將映射規(guī)則調(diào)整為

/**
 * Created by wanye on 2017/5/20.
 */
@RestController // @Controller + @ResponseBody
@RequestMapping("**.do")
public class HelloController {

    @RequestMapping(name = "hello")
    public Map hello(){
        Map hello = new HashMap();
        hello.put("data", "hello 小紅");
        hello.put("status", "SUCCESS");
        return hello;
    }
}

當(dāng)然這只是一個例子,題主可以將@RequestMapping("**.do")配置抽象到基類中。

啟動加載

實(shí)際應(yīng)用中,我們會有在項(xiàng)目服務(wù)啟動的時候就去加載一些數(shù)據(jù)或做一些事情這樣的需求。例如:白名單初始化、緩存加載、消息通知等等。為了解決這樣的問題,Spring Boot 為我們提供了一個方法,只需要我們創(chuàng)建類,并實(shí)現(xiàn)接口CommandLineRunner,當(dāng)然這個類需要被spring掃描到(不要忘了增加注解)

package com.wanye;

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
 * Created by wanye on 2017/6/3.
 */
@Component
@Order(1)
public class CacheInit implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println(">>cache init<<");
    }
}

當(dāng)有多個啟動加載的類,可以通過@Order來指定加載順序,按value值從小到大順序來執(zhí)行。Spring Boot會將啟動參數(shù)傳給自定義啟動加載的類中run方法。

日志處理

Spring Boot在所有內(nèi)部日志中使用Apache Commons Logging,但是默認(rèn)配置也提供了對常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每種Logger都可以通過配置使用控制臺或者文件輸出日志內(nèi)容。本文,主要講解自定義日志配置,并以logback為例進(jìn)行演示。

自定義配置

由于日志服務(wù)一般都在ApplicationContext創(chuàng)建前就初始化了,它并不是必須通過Spring的配置文件控制。因此通過系統(tǒng)屬性和傳統(tǒng)的Spring Boot外部配置文件依然可以很好的支持日志控制和管理。

根據(jù)不同的日志組件,按如下規(guī)則給文件命名,就能被正確加載:

Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
Log4j2:log4j2-spring.xml, log4j2.xml
JDK (Java Util Logging):logging.properties

Spring Boot官方推薦優(yōu)先使用帶有-spring的文件名作為你的日志配置(如使用logback-spring.xml,而不是logback.xml)

logback
在resources下增加logback.xml配置

    
    
        
            %d [%t] %5p %logger - %m%n
        
    
    
        hello.log
        
            hello.%d{yyyy-MM-dd}.log
            30
        
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n
        
    
    
        
        
    
 
簡單說明logback配置文件中的常用配置

控制臺輸出ConsoleAppender

在開發(fā)過程中最常用的是將日志輸出到控制臺

文件輸出RollingFileAppender

另一種常見的日志輸出到文件,隨著應(yīng)用的運(yùn)行時間越來越長,日志也會增長的越來越多,將他們輸出到同一個文件并非一個好辦法。RollingFileAppender用于切分文件日志.

其中重要的是rollingPolicy的定義,上例中hello.%d{yyyy-MM-dd}.log定義了日志的切分方式——把每一天的日志歸檔到一個文件中,30表示只保留最近30天的日志,以防止日志填滿整個磁盤空間。同理,可以使用%d{yyyy-MM-dd_HH-mm}來定義精確到分的日志切分方式。

總結(jié)

靜態(tài)資源處理

默認(rèn)資源映射(/** - > /resources/static) ,重點(diǎn)是默認(rèn)目錄的優(yōu)先級

?定義資源映射 (繼承WebMvcConfigurerAdapter 并重寫方法addResourceHandlers)

啟動加載

CommandLineRunner (實(shí)現(xiàn)接?,多個類加載的優(yōu)先級)

日志處理

logback(配置,控制臺輸出,文件輸出)

最后

如果覺得我的文章對您有用,請點(diǎn)贊、收藏。您的支持將鼓勵我繼續(xù)創(chuàng)作!視頻課程

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

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

相關(guān)文章

  • Spring-Boot學(xué)習(xí)筆記

    摘要:學(xué)習(xí)筆記使用很容易創(chuàng)建一個獨(dú)立運(yùn)行運(yùn)行內(nèi)嵌容器準(zhǔn)生產(chǎn)級別的基于框架的項(xiàng)目,使用你可以不用或者只需要很少的配置。異常消息如果這個錯誤是由異常引起的。錯誤發(fā)生時請求的路徑。 Spring-Boot 1.5 學(xué)習(xí)筆記 使用Spring Boot很容易創(chuàng)建一個獨(dú)立運(yùn)行(運(yùn)行jar,內(nèi)嵌Servlet容器)、準(zhǔn)生產(chǎn)級別的基于Spring框架的項(xiàng)目,使用Spring Boot你可以不用或者只需要很...

    curlyCheng 評論0 收藏0
  • Spring Boot - 自定義啟動banner

    摘要:背景這段時間較忙,有些想念小紅,為了表達(dá)我對小紅的思念之情,決定將啟動的研究一下,看看是否能夠自定義,讓我天天能夠看到她。 背景 這段時間較忙,有些想念小紅,為了表達(dá)我對小紅的思念之情,決定將spring boot啟動的banner研究一下,看看是否能夠自定義,讓我天天能夠看到她。 展示 經(jīng)過調(diào)研,發(fā)現(xiàn)自定義banner是一個輕松愉快的過程,忍不住讓我多啟動幾次,先看看效果:(省略了一...

    CollinPeng 評論0 收藏0
  • Spring Boot 參考指南(開發(fā)Web應(yīng)用程序)

    摘要:開發(fā)應(yīng)用程序非常適合應(yīng)用程序開發(fā),通過使用嵌入式或,你可以創(chuàng)建一個自包含的服務(wù)器。如果你還沒有開發(fā)過一個應(yīng)用程序,你可以按照入門部分中的示例進(jìn)行操作。自動配置為大多數(shù)應(yīng)用程序提供了良好的自動配置。 27. 開發(fā)Web應(yīng)用程序 Spring Boot非常適合web應(yīng)用程序開發(fā),通過使用嵌入式Tomcat、Jetty、Undertow或Netty,你可以創(chuàng)建一個自包含的HTTP服務(wù)器。大多...

    roadtogeek 評論0 收藏0
  • Spring Boot - 單元測試(Junit4&Mockito)

    摘要:當(dāng)面講給你聽講堂地址,或許是最實(shí)用的教程,新課促銷中,只要你敢來,保你收貨滿滿。優(yōu)惠報(bào)名全程擼碼快速入門教程全原價(jià),優(yōu)惠價(jià)全程擼碼進(jìn)階全原價(jià),優(yōu)惠價(jià) 回顧 Spring Boot - 初識 Hello World Spring Boot - Servlet、過濾器、監(jiān)聽器、攔截器 Spring Boot - 靜態(tài)資源處理、啟動加載、日志處理 Spring Boot - 部署Deplo...

    raoyi 評論0 收藏0
  • Spring Boot 參考指南(開發(fā)者工具)

    摘要:觸發(fā)器文件可以手動更新,也可以使用插件進(jìn)行更新。例如,要配置重新啟動以始終使用觸發(fā)器文件,你需要添加以下屬性遠(yuǎn)程應(yīng)用程序開發(fā)工具并不局限于本地開發(fā),在遠(yuǎn)程運(yùn)行應(yīng)用程序時,還可以使用幾個特性。 20. 開發(fā)者工具 Spring Boot包括一組額外的工具,這些工具可以使應(yīng)用程序開發(fā)體驗(yàn)變得更加愉快,spring-boot-devtools模塊可以包含在任何項(xiàng)目中,以提供額外的develo...

    APICloud 評論0 收藏0

發(fā)表評論

0條評論

or0fun

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<