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

SpringBoot整合Java Web三大件的詳細(xì)過程

 更新時間:2025年04月21日 11:21:09   作者:axinawang  
這篇文章主要介紹了SpringBoot整合Java Web三大件的詳細(xì)過程,注冊自定義的Servlet、Filter、Listener組件到springboot內(nèi)嵌的Servlet容器,讓它們發(fā)揮自己的作用,需要的朋友可以參考下

目的:注冊自定義的Servlet、Filter、Listener組件到springboot內(nèi)嵌的Servlet容器,讓它們發(fā)揮自己的作用

使用Spring Bean 注冊Java Web三大組件

路徑掃描整合javaweb三大組件

1.三大組件上添加對應(yīng)注解

在對應(yīng)組件上分別使用@WebServlet(“/annotationServlet”)注解來映射“/annotationServlet”請求的Servlet類,

使用@WebFilter(value = {“/antionLogin”,“/antionMyFilter”})注解來映射“/antionLogin”和“/antionMyFilter”請求的Filter類,

使用@WebListener注解來標(biāo)注Listener類。

@WebServlet("/annotationServlet")
public class MyServlet extends HttpServlet {
@WebFilter(value = {"/antionLogin","/antionMyFilter"})
public class MyFilter implements Filter {
@WebListener
public class MyListener implements ServletContextListener {

2.主程序啟動類上添加@ServletComponentScan注解,開啟基于注解方式的Servlet組件掃描支持

@ServletComponentScan
@SpringBootApplication
public class MyChapter05Application

3.測試

http://localhost:8080/annotationServlet

http://localhost:8080/antionLogin

http://localhost:8080/antionMyFilter

使用RegistrationBean注冊Java Web三大件

使用組件注冊方式整合Servlet

1.創(chuàng)建component子包及一個自定義Servlet類MyServlet,使用@Component注解將MyServlet類作為組件注入Spring容器。MyServlet類繼承自HttpServlet,通過HttpServletResponse對象向頁面輸出“hello MyServlet”。

@Component
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        this.doPost(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.getWriter().write("hello MyServlet");
    }
}

2.在config子包下創(chuàng)建Servlet組件配置類ServletConfig,來注冊Servlet組件

@Configuration
public class ServletConfig {
    // 注冊servlet組件
    @Bean
    public ServletRegistrationBean getServlet(MyServlet myServlet) {
        ServletRegistrationBean registrationBean =
                new ServletRegistrationBean(myServlet, "/myServlet");
        return registrationBean;
    }
}

3.重啟項目,啟動成功后,在瀏覽器上訪問http://localhost:8080/myServlet

使用組件注冊方式整合Filter

1.在component包下創(chuàng)建一個自定義Filter類MyFilter,使用@Component注解將當(dāng)前MyFilter類作為組件注入到Spring容器中。MyFilter類實現(xiàn)Filter接口,并重寫了init()、doFilter()和destroy()方法,在doFilter()方法中向控制臺打印了“hello MyFilter”字符串。

@Component
public class MyFilter implements Filter {
	@Override 
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		System.out.println("hello my filter!"); 
		chain.doFilter(request, response);
	}
}

2.向Servlet組件配置類注冊自定義Filter類

@Bean                                                                            
public FilterRegistrationBean getFilter(MyFilter filter){                        
	FilterRegistrationBean registrationBean = new FilterRegistrationBean(filter);
	//過濾出請求路徑"/toLoginPage","/myFilter",對它們特殊處理,也就是執(zhí)行Filter中的方法。                 
	registrationBean.setUrlPatterns(Arrays.asList("/toLoginPage","/myFilter"));  
	return registrationBean;                                                     
}                                                                                

3、項目啟動成功后,在瀏覽器上訪問http://localhost:8080/myFilter,查看控制臺打印效果

使用組件注冊方式整合Listener

1.創(chuàng)建一個類MyListener

@Component
public class MyListener implements ServletContextListener {
    @Override 
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("contextInitialized ...");
    }
    @Override 
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("contextDestroyed ...");
    }
}

2.向Servlet組件配置類注冊自定義Listener類

@Bean                                                                            
public ServletListenerRegistrationBean getServletListener(MyListener myListener){
	ServletListenerRegistrationBean registrationBean =                           
			new ServletListenerRegistrationBean(myListener);                     
	return registrationBean;                                                     
}                                                                                

3.項目啟動成功后查看控制臺打印效果

contextInitialized ...

4、正常關(guān)閉(保證是正常啟動的)

步驟:
        ①`pom.xml`添加依賴:

<dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>

        ②配置文件`application.properties`:

            #開啟所有的端點(diǎn)
            management.endpoints.web.exposure.include=*
            #啟用shutdown
            management.endpoint.shutdown.enabled=true

        ③執(zhí)行關(guān)閉請求(POST):
            在開發(fā)者工具的console輸入如下代碼,然后按回車:

fetch(new Request('http://localhost:8081/actuator/shutdown',{method:'POST'})).then((resp)=>{console.log(resp)})

結(jié)果:

到此這篇關(guān)于SpringBoot整合Java Web三大件的文章就介紹到這了,更多相關(guān)SpringBoot整合Java Web內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實現(xiàn)在線聊天功能

    Java實現(xiàn)在線聊天功能

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)在線聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 關(guān)于@RequestBody和@RequestParam注解的使用詳解

    關(guān)于@RequestBody和@RequestParam注解的使用詳解

    這篇文章主要介紹了關(guān)于@RequestBody和@RequestParam注解的使用詳解,本文十分具有參考意義,希望可以幫助到你,如果有錯誤的地方還望不吝賜教
    2023-03-03
  • mybatis中的if?test判斷入?yún)⒌闹祮栴}

    mybatis中的if?test判斷入?yún)⒌闹祮栴}

    這篇文章主要介紹了mybatis中的if?test判斷入?yún)⒌闹祮栴},具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • springboot整合過濾器實戰(zhàn)步驟

    springboot整合過濾器實戰(zhàn)步驟

    在項目開發(fā)過程中,過濾器或者攔截器幾乎是必用的,他可以很方便的完成類似日志處理、token驗證等一系列操作,區(qū)別于業(yè)務(wù)接口,獨(dú)立進(jìn)行處理,感覺就是一種Aop思想。下面模擬請求接口前的token驗證,進(jìn)行過濾器的實戰(zhàn)
    2022-04-04
  • Java一致性Hash算法的實現(xiàn)詳解

    Java一致性Hash算法的實現(xiàn)詳解

    這篇文章主要介紹了Java一致性Hash算法的實現(xiàn)詳解,hash的意思是散列,目的將一組輸入的數(shù)據(jù)均勻的分開、打散,往往用來配合路由算法做負(fù)載均衡,多用在分布式系統(tǒng)中,需要的朋友可以參考下
    2024-01-01
  • Java異常處理的12條軍規(guī)總結(jié)

    Java異常處理的12條軍規(guī)總結(jié)

    這篇文章主要給大家介紹了關(guān)于Java異常處理的12條軍規(guī),文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • SpringCloud如何實現(xiàn)Zuul集群(負(fù)載均衡)

    SpringCloud如何實現(xiàn)Zuul集群(負(fù)載均衡)

    這篇文章主要介紹了SpringCloud如何實現(xiàn)Zuul集群(負(fù)載均衡)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java中的模板模式說明與實現(xiàn)

    Java中的模板模式說明與實現(xiàn)

    這篇文章主要介紹了Java中的模板模式說明與實現(xiàn),模板方法模式,又叫模板模式,在一個抽象類公開定義了執(zhí)行它的方法的模板,它的子類可以更需要重寫方法實現(xiàn),但可以成為典型類中定義的方式進(jìn)行,需要的朋友可以參考下
    2023-10-10
  • Java詳細(xì)分析梳理垃圾回收機(jī)制

    Java詳細(xì)分析梳理垃圾回收機(jī)制

    垃圾回收,顧名思義,便是將已經(jīng)分配出去的,但卻不再使用的內(nèi)存回收回來,以便能夠再次分配。在?Java?虛擬機(jī)的語境下,垃圾指的是死亡的對象所占據(jù)的堆空間
    2022-04-04
  • Springboot整合mybatis的步驟

    Springboot整合mybatis的步驟

    這篇文章主要介紹了Springboot整合mybatis的步驟,幫助大家更好的理解和學(xué)習(xí)使用
    2021-04-04

最新評論

济南市| 永新县| 靖安县| 桃源县| 达孜县| 特克斯县| 寿宁县| 嵊州市| 墨脱县| 鱼台县| 临沭县| 阿克| 淮北市| 贵南县| 静安区| 茶陵县| 道孚县| 通许县| 武山县| 扎兰屯市| 监利县| 马尔康县| 墨江| 金秀| 石楼县| 乌海市| 乾安县| 集贤县| 闸北区| 溧阳市| 大石桥市| 南陵县| 登封市| 临朐县| 荆门市| 宿松县| 北票市| 太仆寺旗| 读书| 淳化县| 神农架林区|