国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Boot學(xué)習(xí)隨筆- 攔截器實(shí)現(xiàn)和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署

這篇具有很好參考價(jià)值的文章主要介紹了Spring Boot學(xué)習(xí)隨筆- 攔截器實(shí)現(xiàn)和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

學(xué)習(xí)視頻:【編程不良人】2021年SpringBoot最新最全教程

第十三章、攔截器

Spring Boot學(xué)習(xí)隨筆- 攔截器實(shí)現(xiàn)和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署,Spring Boot,spring boot,學(xué)習(xí),jar

  1. 攔截器 :Interceptor 攔截 中斷

    類似于javaweb中的Filter,不過(guò)沒(méi)有Filter那么強(qiáng)大

  2. 作用

    Spring MVC的攔截器是一種用于在請(qǐng)求處理過(guò)程中進(jìn)行預(yù)處理和后處理的機(jī)制。攔截器可以在請(qǐng)求到達(dá)控制器之前和之后執(zhí)行一些操作,例如日志記錄、權(quán)限驗(yàn)證、數(shù)據(jù)處理等。

  3. 攔截器特點(diǎn)

    1. 請(qǐng)求到達(dá)會(huì)經(jīng)過(guò)攔截器,響應(yīng)回來(lái)同樣會(huì)經(jīng)過(guò)攔截器
    2. 攔截器只能Controller的請(qǐng)求,不能攔截jsp、靜態(tài)資源相關(guān)請(qǐng)求
    3. 攔截器可以中斷請(qǐng)求軌跡

攔截器實(shí)現(xiàn)

  • 開(kāi)發(fā)步驟
  1. 配置攔截器 實(shí)現(xiàn)**HandlerInterceptor**,這個(gè)類通常包含**preHandle、postHandleafterCompletion**三個(gè)方法,分別用于請(qǐng)求處理之前、之后以及完成后執(zhí)行自定義邏輯。

    @Component
    public class MyInterceptor implements HandlerInterceptor {
        private final Logger log = LoggerFactory.getLogger(MyInterceptor.class);
    
        @Override
        //參數(shù)1:當(dāng)前請(qǐng)求對(duì)象  參數(shù)2:當(dāng)前請(qǐng)求響應(yīng)對(duì)象 參數(shù)3:當(dāng)前請(qǐng)求的控制器對(duì)應(yīng)的方法對(duì)象
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            log.debug("======1========");
            return HandlerInterceptor.super.preHandle(request, response, handler);
        }
    
        @Override
        // 參數(shù)1、2、3同上 參數(shù)4:當(dāng)前控制器方法的返回值
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
            log.debug("======2========");
            log.debug("view:{}",modelAndView.getViewName());
            HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
        }
    
        @Override
        // 參數(shù)1、2、3同上 參數(shù)4:請(qǐng)求過(guò)程中出現(xiàn)異常時(shí)的異常對(duì)象
        // 這個(gè)方法總是會(huì)執(zhí)行 無(wú)論請(qǐng)求正確或出現(xiàn)異常
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
            log.debug("======3========");
            HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
        }
    }
    
  2. 創(chuàng)建配置類,目的是將攔截器注冊(cè)到程序中,在這個(gè)配置類中,你需要重寫(xiě)**addInterceptors方法,并在其中將攔截器添加到InterceptorRegistry**中。

    @Configuration
    public class MvcConfig implements WebMvcConfigurer {
        @Autowired
        private MyInterceptor myInterceptor;
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(myInterceptor)// 指定攔截器
                    .addPathPatterns("/**")// 攔截所有
                    .excludePathPatterns("file/**");//排除攔截
    
        }
    }
    
  • 注意

    多個(gè)攔截器注冊(cè)到配置類中,他們的執(zhí)行順序是按照棧一樣的順序,第一個(gè)攔截器先執(zhí)行,那么該攔截器也是最后退出的。秉承先進(jìn)后出的原理

    @Configuration
    public class MvcConfig implements WebMvcConfigurer {
        @Autowired
        private MyInterceptor myInterceptor;
    
        @Autowired
        private MyInterceptor2 myInterceptor2;
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(myInterceptor)// 指定攔截器
                    .addPathPatterns("/**")// 攔截所有
                    .excludePathPatterns("file/**");//排除攔截
            registry.addInterceptor(myInterceptor2)// 指定攔截器
                    .addPathPatterns("/**")// 攔截所有
                    .excludePathPatterns("file/**");//排除攔截
        }
    }
    
    • 執(zhí)行結(jié)果

      Spring Boot學(xué)習(xí)隨筆- 攔截器實(shí)現(xiàn)和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署,Spring Boot,spring boot,學(xué)習(xí),jar

  • 可以通過(guò)order參數(shù)修改執(zhí)行順序

    @Configuration
    public class MvcConfig implements WebMvcConfigurer {
        @Autowired
        private MyInterceptor myInterceptor;
    
        @Autowired
        private MyInterceptor2 myInterceptor2;
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(myInterceptor)// 指定攔截器
                    .addPathPatterns("/**")// 攔截所有
                    .excludePathPatterns("file/**") //排除攔截
                    .order(2);
            registry.addInterceptor(myInterceptor2)// 指定攔截器
                    .addPathPatterns("/**")// 攔截所有
                    .excludePathPatterns("file/**")//排除攔截
                    .order(1);
        }
    }
    

第十四章、項(xiàng)目部署

Spring Boot 項(xiàng)目可以通過(guò)多種方式部署:

  1. 傳統(tǒng)服務(wù)器部署:將 Spring Boot 項(xiàng)目打包成可執(zhí)行的War/ JAR 文件,然后將該 War/JAR 文件上傳到服務(wù)器并運(yùn)行。這種方式需要確保服務(wù)器上已經(jīng)安裝了 Java 運(yùn)行環(huán)境。
  2. Docker 容器部署:將 Spring Boot 項(xiàng)目打包成 Docker 鏡像,然后在 Docker 容器中運(yùn)行該鏡像。這種方式可以實(shí)現(xiàn)環(huán)境的快速部署和一致性。
  3. 云平臺(tái)部署:將 Spring Boot 項(xiàng)目部署到云平臺(tái),比如 Heroku、Google Cloud Platform (GCP)、Amazon Web Services (AWS) 等。這些云平臺(tái)提供了簡(jiǎn)單的部署流程和彈性的擴(kuò)展能力。
  4. 自動(dòng)化部署工具:使用自動(dòng)化部署工具,比如 Jenkins、GitLab CI/CD 等,實(shí)現(xiàn)持續(xù)集成和持續(xù)部署。這種方式可以自動(dòng)化構(gòu)建、測(cè)試和部署 Spring Boot 項(xiàng)目。

目前講的就是傳統(tǒng)部署方式,分為兩種:

  • war部署(linux系統(tǒng))
    1. 安裝jdk
    2. 安裝tomcat
    3. 安裝數(shù)據(jù)庫(kù)
    4. 部署項(xiàng)目war放到tomcat weapps
  • jar部署(linux系統(tǒng))
    1. 安裝jdk
    2. 安裝數(shù)據(jù)庫(kù)
    3. 運(yùn)行項(xiàng)目java-jar項(xiàng)目.jar

war包部署

  1. 目前創(chuàng)建springboot項(xiàng)目默認(rèn)都是jar包部署,需要修改設(shè)置pom.xml

    <packaging>war</packaging>
    
  2. 刪除內(nèi)嵌tomcat依賴

     <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <!--設(shè)置僅當(dāng)前idea環(huán)境可以,不參與打包-->
        <scope>provided</scope>
    </dependency>
    <!--tomcat 不參與打包-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    
  3. 配置入口類,不再使用內(nèi)嵌服務(wù)器

    <configuration>
        <fork>true</fork>
        <!--增加jvm參數(shù)-->
        <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
        <!--指定入口類-->
        <mainClass>com.baizhi.Springboot06Application</mainClass>
        <skip>true</skip>
    </configuration>
    
    // SpringBootServletInitializer:不在使用內(nèi)嵌容器啟動(dòng),使用外部tomact啟動(dòng)
    @SpringBootApplication
    public class Springboot06Application extends SpringBootServletInitializer {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(Springboot06Application.class);
        }
    
  4. 在maven里進(jìn)行打包操作

    Spring Boot學(xué)習(xí)隨筆- 攔截器實(shí)現(xiàn)和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署,Spring Boot,spring boot,學(xué)習(xí),jar

  5. 打包后以后

    Spring Boot學(xué)習(xí)隨筆- 攔截器實(shí)現(xiàn)和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署,Spring Boot,spring boot,學(xué)習(xí),jar

  6. 在tomcat運(yùn)行war包項(xiàng)目

    1. 將WAR文件復(fù)制到webapps目錄

    2. 啟動(dòng)Tomcat服務(wù)器

      # 進(jìn)入Tomcat的bin目錄
      cd $CATALINA_HOME/bin
      # 啟動(dòng)Tomcat服務(wù)器
      ./startup.sh
      
    3. 訪問(wèn)應(yīng)用程序:http://localhost:8080/springboot06

jar包部署【推薦】

  1. 執(zhí)行在maven執(zhí)行**package**進(jìn)行打包

  2. 通過(guò)控制臺(tái)打開(kāi)jar包目錄

    Spring Boot學(xué)習(xí)隨筆- 攔截器實(shí)現(xiàn)和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署,Spring Boot,spring boot,學(xué)習(xí),jar

  3. 啟動(dòng)jar包

    **java -jar jar文件名 nohub &** 解釋:nohub:后臺(tái)啟動(dòng) &:不要日志

  4. 成功啟動(dòng)

    Spring Boot學(xué)習(xí)隨筆- 攔截器實(shí)現(xiàn)和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署,Spring Boot,spring boot,學(xué)習(xí),jar

  • 注意:打包jsp模板時(shí),pom.xml里面必須使用1.4.2插件(plugin)
  • 下一章:Spring Boot學(xué)習(xí)隨筆- 第一個(gè)Thymeleaf應(yīng)用(基礎(chǔ)語(yǔ)法th:,request、session作用域取值)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-786302.html

到了這里,關(guān)于Spring Boot學(xué)習(xí)隨筆- 攔截器實(shí)現(xiàn)和配置(HandlerInterceptor、addInterceptors)、jar包部署和war包部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Boot 3自定義注解+攔截器+Redis實(shí)現(xiàn)高并發(fā)接口限流

    在當(dāng)今互聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)中,高并發(fā)訪問(wèn)是一個(gè)常見(jiàn)的挑戰(zhàn)。為了保障系統(tǒng)的穩(wěn)定性和可靠性,我們需要對(duì)接口進(jìn)行限流,防止因過(guò)多的請(qǐng)求導(dǎo)致系統(tǒng)崩潰。 本文將介紹如何利用Spring Boot 3中的自定義注解、攔截器和Redis實(shí)現(xiàn)高并發(fā)接口限流,幫助程序員解決這一挑戰(zhàn)。 1. 自定

    2024年04月28日
    瀏覽(25)
  • spring boot3token攔截器鏈的設(shè)計(jì)與實(shí)現(xiàn)

    spring boot3token攔截器鏈的設(shè)計(jì)與實(shí)現(xiàn)

    ? ??個(gè)人主頁(yè):? ? ?蒾酒 ??系列專欄:《spring boot實(shí)戰(zhàn)》 ??山高路遠(yuǎn),行路漫漫,終有歸途。 目錄 寫(xiě)在前面 流程分析 需要清楚的 實(shí)現(xiàn)步驟 1.定義攔截器 2.創(chuàng)建攔截器鏈配置類 3.配置攔截器鏈順序 4.配置攔截排除項(xiàng) 最后 本文介紹了spring boot后端服務(wù)開(kāi)發(fā)中有關(guān)如何設(shè)計(jì)

    2024年03月11日
    瀏覽(19)
  • 【Spring Boot系列】- Spring Boot攔截器

    攔截器(Interceptor)是在面向切面編程中應(yīng)用的,就是在service或者一個(gè)方法前調(diào)用一個(gè)方法,或者在方法后調(diào)用一個(gè)方法。是基于JAVA的反射機(jī)制??梢愿鶕?jù) URL 對(duì)請(qǐng)求進(jìn)行攔截,主要應(yīng)用于登陸校驗(yàn)、權(quán)限驗(yàn)證、亂碼解決、性能監(jiān)控和異常處理等功能。 在 Spring Boot 項(xiàng)目中,

    2024年02月13日
    瀏覽(16)
  • spring boot 攔截器例子

    在Spring Boot中,攔截器是通過(guò)實(shí)現(xiàn)`HandlerInterceptor`接口來(lái)實(shí)現(xiàn)的。它允許你在請(qǐng)求到達(dá)控制器方法之前和之后執(zhí)行自定義的邏輯。下面我將為你提供一個(gè)簡(jiǎn)單的Spring Boot攔截器的例子。 假設(shè)我們有一個(gè)簡(jiǎn)單的控制器類`UserController`,其中有兩個(gè)請(qǐng)求處理方法:`getUser`和`saveUser`,

    2024年02月15日
    瀏覽(23)
  • Spring Boot 統(tǒng)一功能處理(攔截器實(shí)現(xiàn)用戶登錄權(quán)限的統(tǒng)一校驗(yàn)、統(tǒng)一異常返回、統(tǒng)一數(shù)據(jù)格式返回)

    Spring Boot 統(tǒng)一功能處理(攔截器實(shí)現(xiàn)用戶登錄權(quán)限的統(tǒng)一校驗(yàn)、統(tǒng)一異常返回、統(tǒng)一數(shù)據(jù)格式返回)

    目錄 1. 用戶登錄權(quán)限校驗(yàn) 1.1 最初用戶登錄權(quán)限效驗(yàn) 1.2 Spring AOP 用戶統(tǒng)?登錄驗(yàn)證 1.3 Spring 攔截器 (1)創(chuàng)建自定義攔截器 (2)將自定義攔截器添加到系統(tǒng)配置中,并設(shè)置攔截的規(guī)則 1.4 練習(xí):登錄攔截器 (1)實(shí)現(xiàn) UserController 實(shí)體類 (2)返回的登錄頁(yè)面:login.html (3)實(shí)

    2024年02月12日
    瀏覽(58)
  • Spring Boot統(tǒng)一處理功能——攔截器

    Spring Boot統(tǒng)一處理功能——攔截器

    ?戶登錄權(quán)限的發(fā)展從之前每個(gè)?法中??驗(yàn)證?戶登錄權(quán)限,到現(xiàn)在統(tǒng)?的?戶登錄驗(yàn)證處理,它是?個(gè)逐漸完善和逐漸優(yōu)化的過(guò)程。 我們先來(lái)回顧?下最初?戶登錄驗(yàn)證的實(shí)現(xiàn)?法: 從上述代碼可以看出,每個(gè)?法中都有相同的?戶登錄驗(yàn)證權(quán)限,它的缺點(diǎn)是: 1. 每個(gè)

    2024年02月13日
    瀏覽(22)
  • Spring Boot攔截器(Interceptor)詳解

    **攔截器(Interceptor)**同 Filter 過(guò)濾器一樣,它倆都是面向切面編程——AOP 的具體實(shí)現(xiàn)(AOP切面編程只是一種編程思想而已)。 你可以使用 Interceptor 來(lái)執(zhí)行某些任務(wù),例如在 Controller 處理請(qǐng)求之前編寫(xiě)日志,添加或更新配置…… 在 Spring 中,當(dāng)請(qǐng)求發(fā)送到 Controller 時(shí),在被 Contr

    2024年02月03日
    瀏覽(26)
  • 【Spring Boot】攔截器與統(tǒng)一功能處理

    【Spring Boot】攔截器與統(tǒng)一功能處理

    博主簡(jiǎn)介:想進(jìn)大廠的打工人 博主主頁(yè): @xyk: 所屬專欄:?JavaEE進(jìn)階 ? 上一篇文章我們講解了Spring AOP是一個(gè)基于面向切面編程的框架,用于將某方面具體問(wèn)題集中處理,通過(guò)代理對(duì)象來(lái)進(jìn)行傳遞,但使用原生Spring AOP實(shí)現(xiàn)統(tǒng)一的攔截是非常繁瑣的。而在本節(jié),我們將使用一種

    2024年02月14日
    瀏覽(23)
  • Spring Boot攔截器與動(dòng)態(tài)代理深度剖析

    Spring Boot攔截器與動(dòng)態(tài)代理深度剖析

    ??歡迎來(lái)到架構(gòu)設(shè)計(jì)專欄~Spring Boot攔截器與動(dòng)態(tài)代理深度剖析 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁(yè):IT·陳寒的博客 ??該系列文章專欄:架構(gòu)設(shè)計(jì) ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實(shí)戰(zhàn)項(xiàng)目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) ??文章作者技術(shù)和水平有限,如果

    2024年01月22日
    瀏覽(26)
  • spring boot 過(guò)濾器&攔截器與aop

    spring boot 過(guò)濾器&攔截器與aop

    在使用 Spring 框架時(shí),可以通過(guò)在 web.xml 配置文件中注冊(cè)過(guò)濾器,使其在請(qǐng)求進(jìn)入 Spring 前就能夠進(jìn)行預(yù)處理。這樣可以在請(qǐng)求進(jìn)入 Spring MVC 的 DispatcherServlet 之前,對(duì)請(qǐng)求進(jìn)行攔截、修改或者過(guò)濾。 過(guò)濾器在 Spring 中的應(yīng)用場(chǎng)景包括但不限于: 字符編碼過(guò)濾:通過(guò)過(guò)濾器,在

    2024年02月01日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包