欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單了解SpringBoot過濾器及使用方式

 更新時間:2020年04月27日 10:01:17   作者:小伍2013  
這篇文章主要介紹了簡單了解SpringBoot過濾器及使用方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

過濾器簡介

  • 過濾器依賴Servlet容器,屬于Servlet規(guī)范的一部分。
  • 在實現(xiàn)上基于Servlet容器的函數(shù)回調(diào),可以對幾乎所有請求進行過濾。
  • Filter的生命周期由Servlet容器管理。

過濾器執(zhí)行流程

過濾器配置使用方式一

@Order(1) // 指定過濾器的執(zhí)行順序
@WebFilter(filterName = "CostTimeFilter", urlPatterns = "/*" , initParams = {
    @WebInitParam(name = "URL", value = "http://localhost:8080")})
public class CostTimeFilter implements Filter {
  private String url;
  /**
   * filter對象只會創(chuàng)建一次,init方法也只會執(zhí)行一次。
   */
  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
    this.url = filterConfig.getInitParameter("URL");
    System.out.println("Filter init...");
  }

  /**
   * 主要的業(yè)務(wù)代碼編寫方法
   */
  @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
  	long start = System.currentTimeMillis();
    System.out.println(start + " Filter doFilter before...");
    filterChain.doFilter(servletRequest, servletResponse);
  	long end = System.currentTimeMillis();
    System.out.println(end + "Filter doFilter after...");
  }

  /**
   * 在銷毀Filter時自動調(diào)用。
   */
  @Override
  public void destroy() {
    System.out.println("Filter destroy...");
  }
}

@RestController
public class IndexContoller {
  @RequestMapping("/query")
  public void query() throws Exception {
    System.out.println("IndexContoller query...");
  }
}
@SpringBootApplication
@ServletComponentScan // 掃描 Servlet 相關(guān)的組件
public class SpringBootFilterApplication {
  public static void main(String[] args) {
    SpringApplication.run(SpringBootFilterApplication.class, args);
  }
}

過濾器配置方式二

public class CostTimeFilter implements Filter {
  private String url;
  /**
   * filter對象只會創(chuàng)建一次,init方法也只會執(zhí)行一次。
   */
  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
    this.url = filterConfig.getInitParameter("URL");
    System.out.println("Filter init...");
  }

  /**
   * 主要的業(yè)務(wù)代碼編寫方法
   */
  @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
  	long start = System.currentTimeMillis();
    System.out.println(start + " Filter doFilter before...");
    filterChain.doFilter(servletRequest, servletResponse);
  	long end = System.currentTimeMillis();
    System.out.println(end + "Filter doFilter after...");
  }

  /**
   * 在銷毀Filter時自動調(diào)用。
   */
  @Override
  public void destroy() {
    System.out.println("Filter destroy...");
  }
}
@Configuration
public class FilterConfig {
  @Bean
  public FilterRegistrationBean registFilter() {
    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(new CostTimeFilter());
    registration.addUrlPatterns("/*");
    registration.setName("CostTimeFilter");
    registration.setOrder(1);
    return registration;
  }
}

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

相關(guān)文章

  • java實現(xiàn)基于Tcp的socket聊天程序

    java實現(xiàn)基于Tcp的socket聊天程序

    這篇文章主要為大家詳細介紹了java實現(xiàn)基于Tcp的socket聊天程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Spring中@Transactional(rollbackFor=Exception.class)屬性用法介紹

    Spring中@Transactional(rollbackFor=Exception.class)屬性用法介紹

    這篇文章介紹了Spring中@Transactional(rollbackFor=Exception.class)屬性的用法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • WebSocket整合SSM(Spring,Struts2,Maven)的實現(xiàn)示例

    WebSocket整合SSM(Spring,Struts2,Maven)的實現(xiàn)示例

    這篇文章主要介紹了WebSocket整合SSM(Spring,Struts2,Maven)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • WebSocket 中使用 @Autowired 注入對應(yīng)為null的解決方案

    WebSocket 中使用 @Autowired 注入對應(yīng)為null的解決方案

    SpringBoot集成WebSocket時,會遇到service對象為null的情況,原因是Spring默認為單例模式與WebSocket的多對象模式相沖突,當客戶端與服務(wù)器端建立連接時,會創(chuàng)建新的WebSocket對象,本文給大家介紹WebSocket 中使用 @Autowired 注入對應(yīng)為null的問題,感興趣的朋友一起看看吧
    2024-10-10
  • Java 實現(xiàn)跨平臺的操作方式

    Java 實現(xiàn)跨平臺的操作方式

    這篇文章主要介紹了Java 實現(xiàn)跨平臺的操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java使用短信設(shè)備發(fā)送sms短信的示例(java發(fā)送短信)

    java使用短信設(shè)備發(fā)送sms短信的示例(java發(fā)送短信)

    這篇文章主要介紹了java使用短信設(shè)備發(fā)送sms短信的示例(java發(fā)送短信),需要的朋友可以參考下
    2014-04-04
  • SpringBoot超詳細講解yaml配置文件

    SpringBoot超詳細講解yaml配置文件

    這篇文章主要介紹了SpringBoot中的yaml配置文件問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Java的Spring框架中DAO數(shù)據(jù)訪問對象的使用示例

    Java的Spring框架中DAO數(shù)據(jù)訪問對象的使用示例

    這篇文章主要介紹了Java的Spring框架中DAO數(shù)據(jù)訪問對象的使用示例,分為在Spring中DOA與JDBC以及與Hibernate的配合使用兩種情況來進行演示,需要的朋友可以參考下
    2016-03-03
  • JSON,AJAX,Maven入門基礎(chǔ)

    JSON,AJAX,Maven入門基礎(chǔ)

    這篇文章主要介紹了JSON,AJAX和Maven基礎(chǔ),如何使用AJAX讀取Json數(shù)組里面的數(shù)據(jù),感興趣的小伙伴們可以參考一下,希望能夠幫助到你
    2021-07-07
  • 減少代碼開發(fā)工作的Java庫lombok及注解的使用學(xué)習(xí)

    減少代碼開發(fā)工作的Java庫lombok及注解的使用學(xué)習(xí)

    不久前發(fā)現(xiàn)有一個java第三方庫可以在一定程度上幫助我們從體力勞動中解救出來,它就是lombok。它提供了一些簡單的注解,并以此來消除java中臃腫的模版代碼。本文對于一些常用到的注解做了一個簡要的記錄,希望有更多的人enjoy it
    2022-07-07

最新評論