在springBoot中配置web.xml中配置的servlet
第一種
?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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中信银行联通联名信用卡怎么送话费?满足这
- 下一篇: fiddler2抓包数据工具使用教程