在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工程下使用该文 ...
随机推荐
- 继承之final关键字的使用
final关键字 使用final关键字坐标识具有"最终的"含义, final可以修饰类.方法.属性.和变量. final修饰类表示该类不能被继承 final修饰方法,则表示该方法不 ...
- JavaScript(ES5)使用保留字作函数名
ES5同意直接使用保留字作为属性名.但却不同意直接使用保留字作为函数名 设现有类NSMap,若要给NSMap的原型加delete方法,如 function NSMap(){ } NSMap.proto ...
- Javascript:自己写模板引擎
背景 因为JS没有提供“字符串插入”和“多行字符串”特性,传统的拼凑字符串容易出错.性能不高和不容易理解代码,为了应对这些问题,很多个人和团队开发了模板引擎,现在主流的JS框架几乎都提供此类功能了. ...
- 慎用ArrayList的contains方法,使用HashSet的contains方法代替
在启动一个应用的时候,发现其中有一处数据加载要数分钟,刚开始以为是需要load的数据比较多的缘故,查了一下数据库有6条左右,但是单独写了一个数据读取的方法,将这6万多条全部读过来,却只需要不到10秒钟 ...
- idea html,js修改不用重启进程
1Setting -> build-compiler ---勾选 Build project automatically选项 2 快捷键Ctrl + Shift + A查找registry命令 ...
- python3用BeautifulSoup抓取div标签
# -*- coding:utf-8 -*- #python 2.7 #XiaoDeng #http://tieba.baidu.com/p/2460150866 #标签操作 from bs4 imp ...
- Ubuntu菜鸟入门(十八)————解决Ubuntu下Sublime Text 3无法输入中文
一.下载我们需要的文件,打开终端,输入: git clone https://github.com/lyfeyaj/sublime-text-imfix.git 二.将subl移动到/usr/bin/ ...
- [Aaronyang] 写给自己的WPF4.5 笔记13[二维自定义控件技巧-可视化状态实战,自定义容器,注册类命令,用户控件补充]
我的文章一定要做到对读者负责,否则就是失败的文章 --------- www.ayjs.net aaronyang技术分享 博文摘要:欢迎大家来支持我的<2013-2015 Aar ...
- 多进程vs多线程
多进程模式最大的优点就是稳定性高,因为一个子进程崩溃了,不会影响主进程和其他子进程.(当然主进程挂了所有进程就全挂了,但是Master进程只负责分配任务,挂掉的概率低)著名的Apache最早就是采用多 ...
- Android查询不到电话号码解决方法
貌似联系人有三个数据库,且不同步,另外也有可能是版本问题. 解决方案:https://github.com/codinguser/android_contact_picker 接下来会对其进行一些改造 ...