在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; @Bean
public ServletRegistrationBean servletRegistrationBean() {
return new ServletRegistrationBean(new MyWebSocketServlet(), "/socket");
} @Override
protected 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标记容器是否在启动的时候实例化并调用其init()方法的优先级。
它的值表示 servlet应该被载入的顺序。
当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet。
.如果值小于0或未指定时,则表示只有在第一次请求的容器才在该servlet调用初始化函数。
正值越小,servlet的优先级越高,应用启动时就越先加载。
值相同时,容器就会自己选择顺序来加载。
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());
}
}
在springBoot中配置web.xml中配置的servlet的更多相关文章
- SSM搭配中的web.xml的配置信息
最近一段时间在自己学着搭建SSM框架的项目,其实这个项目自由自己不断尝试,不断失败,才能印象更深刻. 下面就说一下在项目中的web.xml的相关配置信息: <?xml version=" ...
- struts2 在 Action 或 Interceptor 中获取 web.xml 中配置的 <context-param> 参数 (这是我的第一篇博文,哈哈。)
最近为了改一个问题,想加一个控制开关,就在web.xml 中配置了一个 <context-param> 参数,并在 Action 或 Interceptor 中获取参数值. 1.在 web ...
- SpringMVC中在web.xml中添加中文过滤器的写法
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>or ...
- 解决servlet在web.xml中的路径跳转问题
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" ...
- Web.xml中Filter过滤器标签几个说明
在研究liferay框架中看到Web.xml中加入了过滤器的标签,可以根据页面提交的URL地址进行过滤,发现有几个新标签没用过,下面就介绍以下几个过滤器的标签用法: <!-- 定义Filter ...
- web.xml中Filter过滤器标签说明
原文:http://www.cnblogs.com/edwardlauxh/archive/2010/03/11/1918618.html 在研究liferay框架中看到Web.xml中加入了过滤器的 ...
- SpringBoot源码篇:深度分析SpringBoot如何省去web.xml
一.前言 从本博文开始,正式开启Spring及SpringBoot源码分析之旅.这可能是一个漫长的过程,因为本人之前阅读源码都是很片面的,对Spring源码没有一个系统的认识.从本文开始我会持续更新, ...
- servlet中用注解的方式读取web.xml中的配置信息
在学习servletContext的时候,我们知道了可以在web.xml中通过<context-param>标签来定义全局的属性(所有servlet都能读取的信息),并在servlet中通 ...
- JavaWeb工程中web.xml基本配置
一.理论准备 先说下我记得xml规则,必须有且只有一个根节点,大小写敏感,标签不嵌套,必须配对. web.xml是不是必须的呢?不是的,只要你不用到里面的配置信息就好了,不过在大型web工程下使用该文 ...
随机推荐
- Internet Explorer 11:不要再叫我IE
上周,Internet Explorer 11搭载Windows 8.1预览版而来,相信很多浏览迷也已经在使用中.Internet Explorer 11 Preview 改进了与 Web 标准.其他 ...
- Makefile 中的.PHONY
PHONY 目标并非实际的文件名:只是在显式请求时执行命令的名字.有两种理由需要使用PHONY 目标:避免和同名文件冲突,改善性能. 所谓的PHONY这个单词就是伪造的意思,makefile中将.PH ...
- app v2界面
相比v1要流畅了很多
- 反向代理WebSocket连接自动断掉的问题
Nginx可能设置了超时时间,导致WebSocket一会儿就断了 解决方法: 1.增加Nginx配置 proxy_read_timeout 500s; 注:三种超时时间,参见 https://www. ...
- 微信小程序 多个视频播放器
大致思路就是,wx:for="{{ list }}"下两个view,一个视频video,另一个封面image(客户需求,要可以自定义封面).主要控制变量是playIndex,当点击 ...
- Spring MVC报异常:org.springframework.web.util.NestedServletException: Request processing failed
在使用SpringMVC绑定基本类型(如String,Integer等)参数时,应通过@RequestParam注解指定具体的参数名称,否则,当源代码在非debug模式下编译后,运行时会引发Handl ...
- JavaScript深入系列15篇
JavaScirpt深入之从原型到原型链 构造函数创建对象 我们先使用构造函数创建一个对象: function Person() { } var person = new Person(); pers ...
- Linux下计算进程的CPU占用和内存占用的编程方法[转]
from:https://www.cnblogs.com/cxjchen/archive/2013/03/30/2990548.html Linux下没有直接可以调用系统函数知道CPU占用和内存占用. ...
- system函数遇到的问题
这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以 ...
- 《ZooKeeper分布式专题与Dubbo微服务入门》
最近在慕课网新上的课程,有兴趣的朋友可以关注一波 http://coding.imooc.com/class/201.html