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

第一種

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

當攔截到 /socke t時執行該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>

轉為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);} }

?

第二種

首先解釋一下:

  1. load-on-startup標記容器是否在啟動的時候實例化并調用其init()方法的優先級。

  2. 它的值表示 ?servlet應該被載入的順序。

  3. 當值為0或者大于0時,表示容器在應用啟動時就加載并初始化這個servlet。

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

  5. 正值越小,servlet的優先級越高,應用啟動時就越先加載。

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

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項目的實際開發中,我們有時需要項目服務啟動時加載一些數據或預先完成某些動作。為了解決這樣的問題,Spring?boot 為我們提供了一個方法:通過實現接口 CommandLineRunner 來實現這樣的需求。

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());} }

?

?

  

?

轉載于:https://www.cnblogs.com/wangxiaomei/p/8885470.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250473.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250473.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250473.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

koa --- koa-bouncer驗證

使用 koa-bouncer中間件對傳入的數據進行驗證 const bouncer require(koa-bouncer); app.use(bouncer.middleware());const val async (ctx, next) > {ctx.validateBody(name).required(要求提供用戶名).isLength(6, 16, 用戶名長度應該為6~16).isString().trim()next();…

static關鍵字的作用

//C/C程序員面試指南 楊國祥等編著 定義全局靜態變量。全局靜態變量有以下特點&#xff1a; 在全局數據區分配內存&#xff1b;如果沒有初始化&#xff0c;其默認值為0&#xff1b;該變量在本文件內從定義開始到文件結束可見。定義局部靜態變量。局部靜態變量有以下特點&…

Redis 初次嘗試

Redis 初次嘗試 第一次接觸redis&#xff0c;也不知道要寫些什么。就玩了下將redis列表中的數據存入mysql數據庫中。 首先有三個文件&#xff1a; redis.php 添加數據進redis&#xff1b; insert_class.php 將數據插入數據庫&#xff1b; inert.php 調用insert_class.php;…

fiddler2抓包數據工具使用教程

一款免費且功能強大的數據包抓取軟件。它通過代理的方式獲取程序http通訊的數據&#xff0c;可以用其檢測網頁和服務器的交互情況&#xff0c;能夠記錄所有客戶端和服務器間的http請求&#xff0c;支持監視、設置斷點、甚至修改輸入輸出數據等功能。fiddler包含了一個強大的基于…

egg --- 初始化一個egg項目基本結構說明

Egg.js體驗 全局安裝 // 創建項目 $ npm i egg-init -g $ egg-init egg-example --typesimple $ cd egg-example $ npm i// 啟動項目 $ npm run dev $ open localhost:7000Egg.js的結構 路由(Router): 將請求URL和具體承擔執行動作的Controller的關系對應控制器(Controller)…

葫蘆娃

葫蘆娃救爺爺 1.隊名——代碼那些事兒 2.團隊成員 劉佳 211606320&#xff08;隊長&#xff09;李佳 211660313周世元 211606348王浩 211606378曾麗麗 211606302陳水蓮 211606303許燕婷 211606338楊小妮 2116063413.隊長博客鏈接 -https://www.cnblogs.com/LJ-D/p/9799944.html…

webstorm遇到的問題

問題一&#xff1a;英譯&#xff1a;未指定node.js的解釋器。 解決方法&#xff1a;將webstorm配置支持node.js并自動補全 步驟&#xff1a; 先下載node.jsFile->Setting->輸入Node.js&#xff08;選中點進去&#xff09;->Node imterpreter&#xff08;選擇node的安裝…

egg --- 配置連接mysql 創建模型 插入數據

在egg中使用egg-sequelize插件 sequelize是與數據庫操作相關的庫安裝: npm install --save egg-sequelize mysql2 在egg中配置sequelize 1.在 config/plugin.js中引入 egg-sequelize插件,代碼如下 sequelize: {enable: true,package: egg-sequelize }2.在config/config.def…

Flask 在 Debug 模式下初始化2次

請移步&#xff1a; http://blog.zengrong.net/post/2632.html https://stackoverflow.com/questions/9449101/how-to-stop-flask-from-initialising-twice-in-debug-mode/9476701#9476701 https://stackoverflow.com/questions/25504149/why-does-running-the-flask-dev-serve…

eclipse報錯: Could not generate secret

在調用微信接口時&#xff0c;出現一個錯誤&#xff1a; 一直以為是接口調用問題&#xff0c;經多方查詢和嘗試解決&#xff0c;最后找到根源&#xff1a; edit-->使用default就可以了。 原因&#xff1a; 在eclipse中運行時&#xff0c;把簽名信息給去掉了。 轉載于:https:…

koa --- [MVC實現之一]自定義路由讀取規則

實現MVC分層架構 目標是創建約定大于配置、開發效率高、可維護性強的項目架構路由處理 規范 所有路由,都要放在routes文件夾中若導出路由對象,使用 動詞空格路徑 作為key, 值是操作方法若導出函數, 則函數返回第二條約定格式的對象 路由定義: 新建 router/index.js, 默認index…

sql中的left join、right join、inner join

sql中的left join、right join、inner join 轉自&#xff1a;http://www.cnblogs.com/pcjim/articles/799302.html left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄inner join…

bzoj1128 Lam-lights

題目描述 對于一個長度為n的數列p&#xff0c;數列中任意兩個數互質。準備一個無限長的儲存器。然后從p1開始&#xff0c;把儲存器中p1倍數位置都賦值為p1&#xff0c;把儲存器中p2倍數位置都賦值為p2&#xff0c;把儲存器中p3倍數位置都賦值為p3。。。把儲存器中pn倍數位置都賦…

koa --- [MVC實現之二]Controller層的實現

[MVC實現之一]傳送門 https://blog.csdn.net/piano9425/article/details/103362966 Router層 router這一層,不做業務處理,僅僅只是將路由和路由的處理函數結合起來.路由的處理函數由Controller層實現改進目錄結構如下(實際上新建了controller文件夾及其內部子文件,mar.js) …

k8s install

https://xiangyu123.github.io/2018/10/17/k8s-install/轉載于:https://www.cnblogs.com/robinunix/p/9809937.html

Redis 幾種應用場景

Redis 幾種應用場景 字符串緩存 <?php$redis new Redis();$redis->connect(127.0.0.1,6379);$strKey test;$strKey1 test1;//set$arrCache [name>mysteryH,sex>男,age>22];$redis->set($strKey,json_encode($arrCache));$redis->expire($strKey,300…

HDU 6029(思維)

傳送門題面&#xff1a;Graph TheoryTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1220 Accepted Submission(s): 553Problem DescriptionLittle Q loves playing with different kinds of graphs very muc…

2018.10.18多校

T1&#xff1a;雖說大家都被cdq限制住了思維&#xff0c;我一個注意到了排列有問題的還是涼了&#xff0c;這個我沒有一點辦法了。 鏈接&#xff1a;cdq T2&#xff1a;留坑&#xff0c;太毒了 T3&#xff1a;考場上就不覺得能寫&#xff0c;雖然心里想到一些做法&#xff0c;還…

Layui --- [Mar]給渲染后的表格加CSS樣式

為什么要控制樣式 使用layui生成后的表格的樣式有時候,并不能滿足我們的需求.因此在渲染完成后,需要自定義類對其操作 Layui表格渲染后一般會出現以下結構 分結構如下 我把使用layui的table渲染后的表格分為如下的幾個dom 1.$rawTable: 初始table,即 2.$renderTable: 渲染之…

Python 楊輝三角形的簡單實現

Python 楊輝三角形的簡單實現 介紹&#xff1a; 楊輝三角 實現&#xff1a; # -*- coding: utf-8 -*-def triangles():L[1]while True:yield LL [1] [ L[i-1] L[i] for i in range(1,len(L)) ] [1]n 0 for t in triangles():print(t)n n1if n 10 :break 效果&#x…