在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.mzph.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…