最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot如何添加攔截器

 更新時間:2017年04月08日 14:44:20   作者:Ryan.Miao  
本篇文章主要介紹了spring boot如何添加攔截器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

構(gòu)建一個spring boot項(xiàng)目。

添加攔截器需要添加一個configuration

@Configuration
@ComponentScan(basePackageClasses = Application.class, useDefaultFilters = true)
public class ServletContextConfig extends WebMvcConfigurationSupport {

為了方便掃描位置,我們可以寫一個接口或者入口類Application放置于最外一層的包內(nèi),這樣就會掃描該類以及子包的類。

 1 resources配置

在沒有配置這個類的時候,我們可以在application.ym中修改靜態(tài)文件位置和匹配方式:

#指定環(huán)境配置文件
spring:
 profiles:
  active: dev
 # 修改默認(rèn)靜態(tài)路徑,默認(rèn)為/**,當(dāng)配置hello.config.ServletContextConfig后此處配置失效
 mvc:
  static-path-pattern: /static/**

但當(dāng)我們繼承了WebMvcConfigurationSupport 并配置掃描后,上述resources的配置失效,還原默認(rèn)配置。那么我們需要在這個類中再次指定靜態(tài)資源位置:

@Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/").addResourceLocations("/**");
    registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
  }

這樣訪問classpath下的static包下的靜態(tài)資源的url匹配為/static/xxx.js。默認(rèn)匹配static下的靜態(tài)文件url為/xxx.js,雖然清潔,但我感覺idea不會識別這種路徑,還是改成完整的路徑比較好。

2.Interceptor配置

配置登錄攔截或者別的。需要創(chuàng)建一個攔截器類來繼承HandlerInterceptorAdapter,然后只需要覆蓋你想要攔截的位置就可以了。比如,我只是攔截訪問方法之前:

package hello.interceptor;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Created by miaorf on 2016/8/3.
 */
public class LoginInterceptor extends HandlerInterceptorAdapter {
  private Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    String authorization = request.getHeader("Authorization");
    logger.info("The authorization is: {}",authorization);
    return super.preHandle(request, response, handler);
  }
}

寫好interceptor之后需要在開始創(chuàng)建的ServletContextConfig中添加這個攔截器:

@Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new LoginInterceptor())
        .addPathPatterns("/**")
        .excludePathPatterns(FAVICON_URL)
    ;
  }

完整的ServletContextConfig為:

package hello.config;

import hello.Application;
import hello.interceptor.LoginInterceptor;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

/**
 *
 */
@Configuration
@ComponentScan(basePackageClasses = Application.class, useDefaultFilters = true)
public class ServletContextConfig extends WebMvcConfigurationSupport {

  static final private String FAVICON_URL = "/favicon.ico";
  static final private String PROPERTY_APP_ENV = "application.environment";
  static final private String PROPERTY_DEFAULT_ENV = "dev";



  /**
   * 發(fā)現(xiàn)如果繼承了WebMvcConfigurationSupport,則在yml中配置的相關(guān)內(nèi)容會失效。
   * @param registry
   */
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/").addResourceLocations("/**");
    registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
  }


  /**
   * 配置servlet處理
   */
  @Override
  public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
  }

  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new LoginInterceptor())
        .addPathPatterns("/**")
        .excludePathPatterns(FAVICON_URL)
    ;
  }

}

github地址https://github.com/chenxing12/spring-boot-demo

本demo源碼:spring-boot-demo_jb51.rar

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis詳細(xì)執(zhí)行流程的全紀(jì)錄

    MyBatis詳細(xì)執(zhí)行流程的全紀(jì)錄

    這篇文章主要給大家介紹了關(guān)于MyBatis詳細(xì)執(zhí)行流程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • SpringSecurity自定義AuthenticationProvider無法@Autowire的解決

    SpringSecurity自定義AuthenticationProvider無法@Autowire的解決

    這篇文章主要介紹了SpringSecurity自定義AuthenticationProvider無法@Autowire的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 深入淺出講解Java比較器及數(shù)學(xué)常用類

    深入淺出講解Java比較器及數(shù)學(xué)常用類

    這篇文章主要介紹了深入淺出講解Java比較器及數(shù)學(xué)常用類,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • application作用域?qū)崿F(xiàn)用戶登錄擠掉之前登錄用戶代碼

    application作用域?qū)崿F(xiàn)用戶登錄擠掉之前登錄用戶代碼

    這篇文章主要介紹了application作用域?qū)崿F(xiàn)用戶登錄擠掉之前登錄用戶代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • SpringBoot項(xiàng)目@Async方法問題解決方案

    SpringBoot項(xiàng)目@Async方法問題解決方案

    這篇文章主要介紹了SpringBoot項(xiàng)目@Async方法問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java的validation參數(shù)校驗(yàn)代碼實(shí)例

    Java的validation參數(shù)校驗(yàn)代碼實(shí)例

    這篇文章主要介紹了Java的validation參數(shù)校驗(yàn)代碼實(shí)例,Validation參數(shù)校驗(yàn)是指在程序運(yùn)行中對傳進(jìn)來的參數(shù)進(jìn)行合法性檢查,以保證程序的正確性和安全性,需要的朋友可以參考下
    2023-10-10
  • IDEA實(shí)現(xiàn)導(dǎo)入module并成功運(yùn)行

    IDEA實(shí)現(xiàn)導(dǎo)入module并成功運(yùn)行

    這篇文章主要介紹了IDEA實(shí)現(xiàn)導(dǎo)入module并成功運(yùn)行方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 利用Java巧妙解決Excel公式迭代計(jì)算

    利用Java巧妙解決Excel公式迭代計(jì)算

    迭代計(jì)算其實(shí)是在?Excel?中,一種公式的循環(huán)引用,那么如何利用Java語言巧妙解決Excel公式迭代計(jì)算的問題呢,下面小編就來和大家詳細(xì)講講吧
    2023-10-10
  • Java中eq、ne、ge、gt、le、lt的含義詳細(xì)解釋

    Java中eq、ne、ge、gt、le、lt的含義詳細(xì)解釋

    Java中的比較運(yùn)算符包括eq(等于)、ne(不等于)、ge(大于或等于)、gt(大于)、le(小于或等于)和lt(小于),這些運(yùn)算符在控制流語句和條件語句中用于判斷條件是否滿足,從而決定程序的執(zhí)行路徑,需要的朋友可以參考下
    2024-11-11
  • 如何把第三方服務(wù)注冊到spring項(xiàng)目容器中

    如何把第三方服務(wù)注冊到spring項(xiàng)目容器中

    這篇文章主要為大家介紹了如何把第三方服務(wù)注冊到spring項(xiàng)目容器中,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評論

罗田县| 望江县| 乐业县| 新建县| 东乌珠穆沁旗| 奈曼旗| 盱眙县| 稻城县| 常宁市| 南和县| 德庆县| 体育| 冷水江市| 威海市| 台东县| 韶山市| 庐江县| 晋州市| 临泉县| 涟水县| 南乐县| 江油市| 新竹市| 枣庄市| 辉县市| 合作市| 岫岩| 松原市| 山东省| 海南省| 鹤山市| 白水县| 阿荣旗| 新平| 曲周县| 西贡区| 朝阳区| 两当县| 北碚区| 万年县| 年辖:市辖区|