日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在springBoot中配置web.xml中配置的servlet

發(fā)布時間:2023/12/13 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在springBoot中配置web.xml中配置的servlet 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第一種

?web.xml (截取的需要轉(zhuǎn)換的)

當攔截到 /socke t時執(zhí)行該servlet

<servlet><servlet-name>websocket</servlet-name><servlet-class>org.ldd.ssm.hangyu.socket.MyWebSocketServlet</servlet-class></servlet><servlet-mapping><servlet-name>websocket</servlet-name><url-pattern>/socket</url-pattern></servlet-mapping>

轉(zhuǎn)為springboot配置為 紅色部分??

@SpringBootApplication @MapperScan("org.ldd.ssm.hangyu.mapper")
//@ServletComponentScan
public class MyspringbootApplication extends SpringBootServletInitializer{public static ApplicationContext cs; @Beanpublic ServletRegistrationBean servletRegistrationBean() {return new ServletRegistrationBean(new MyWebSocketServlet(), "/socket");}@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {return builder.sources(MyspringbootApplication.class);}public static void main(String[] args) {cs=SpringApplication.run(MyspringbootApplication.class, args);} }

或者在該servlet上加上紅色的注解? 但同時也要在 啟動類上 加上注解?@ServletComponentScan 如上段代碼中注釋的一樣

@SuppressWarnings("deprecation")
@WebServlet(name="myWebSocketServlet",urlPatterns="/socket")?
public class MyWebSocketServlet extends WebSocketServlet {   private static final long serialVersionUID = -6488889268352650321L;
protected StreamInbound createWebSocketInbound(String name,HttpServletRequest request) {String parameter = request.getParameter("name");return new MyMessageInbound(parameter);} }

?

第二種

首先解釋一下:

  • load-on-startup標記容器是否在啟動的時候?qū)嵗⒄{(diào)用其init()方法的優(yōu)先級。

  • 它的值表示 ?servlet應(yīng)該被載入的順序。

  • 當值為0或者大于0時,表示容器在應(yīng)用啟動時就加載并初始化這個servlet。

  • .如果值小于0或未指定時,則表示只有在第一次請求的容器才在該servlet調(diào)用初始化函數(shù)。

  • 正值越小,servlet的優(yōu)先級越高,應(yīng)用啟動時就越先加載。

  • 值相同時,容器就會自己選擇順序來加載。

  • web.xml(截取)?

    <servlet><servlet-name>initServlet</servlet-name><servlet-class>org.ldd.ssm.hangyu.socket.InitServlet</servlet-class><load-on-startup>1</load-on-startup></servlet>

    第一種servlet 都有指定的路徑然而這個啟動時加載的不同 當時看了好久的方法都沒找到。

    找了好久終于找到一篇文章:https://blog.csdn.net/billluffy/article/details/72825753

    我整理在下面:

    在Spring boot項目的實際開發(fā)中,我們有時需要項目服務(wù)啟動時加載一些數(shù)據(jù)或預(yù)先完成某些動作。為了解決這樣的問題,Spring?boot 為我們提供了一個方法:通過實現(xiàn)接口 CommandLineRunner 來實現(xiàn)這樣的需求。

    import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; @Component @Order(value=1)//代表啟動時加載的順序 public class MyStartupRunner implements CommandLineRunner { InitServlet initServlet=new InitServlet();
    @Override
    public void run(String... args) throws Exception{initServlet.init(initServlet.getServletConfig());} }

    ?

    ?

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/wangxiaomei/p/8885470.html

    總結(jié)

    以上是生活随笔為你收集整理的在springBoot中配置web.xml中配置的servlet的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。