??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
java小新人 带着萌新看springboot源码

转载   小杨Java   2018-11-15   浏览量:22


  这节来说个大家都比较熟悉的东西,就是servlet三大组件,servlet、filter、listener,再说说springboot的内置tomcat。

  也许还会说一下tomcat的运行原理,还有,springboot不是不支持jsp吗(是因为嵌入式tomcat的原因),那我就让springboot支持jsp,其他的还是一样。

  比较长,可能要分为两节。

1.servlet配置

  想必大家不会陌生servlet配置,写个类继承HttpServlet,然后在原来的web.xml文件中配置<servlet-name><servlet-class>还有配置servlet的映射路径<servlet-mapping>,忘记的小伙伴就回头看看啊。

  现在的springboot配置servlet,也差不多,写个servlet,但是记住,springboot不能直接识别servlet,需要借助一个工具ServletRegistrationBean(xxxBean在学spring的时候应该很常见,本质上还是一个Bean,但是有能够生产bean的能力,类似一个简单的工厂类)
java小新人 带着萌新看springboot源码

  

  我们接着随意找个配置类(我图方便,就在那个main方法的主配置类加了),加入如下代码:
java小新人 带着萌新看springboot源码

  

  ok,就这样,然后运行,浏览器输入网址

java小新人 带着萌新看springboot源码

2.配置Filter

  配置和上面差不多,写个Filter实现类,利用FilterRegistrationBean往容器里添加filter

java小新人 带着萌新看springboot源码

java小新人 带着萌新看springboot源码
  

  然后运行springboot,输入xxxxx/hehe就行了

java小新人 带着萌新看springboot源码

3.配置listener

  listener最容易,因为前面两个还有配置url映射,这个listener不用配。写个listener,利用ServletListenerRegistrationBean添加到容器里。
java小新人 带着萌新看springboot源码
java小新人 带着萌新看springboot源码

  启动和关闭应用就能看到结果:

java小新人 带着萌新看springboot源码

最后的就是注意ServletListenerRegistrationBean这个类要传入泛型,打开这个类,可以看到我们可以定制监听器的类型
java小新人 带着萌新看springboot源码

4,简单说说嵌入式servlet容器(springboot默认当然是用tomcat)

  springboot应用和以前的ssm等应用最大的不同是,springboot可以打成jar包,然后在装有java运行环境的电脑,就能用java -jar xxx.jar就能够直接运行一个springboot应用,非常方便,但是缺点是不支持jsp;

  而ssm、ssh等的就要达成war包,然后在新的电脑上配置java环境,下载tomcat,再配置tomcat和java的版本,然后才能部署应用,运行,emmmm....估计要很久!

  造成这种结果的最大原因就是springboot装的是小tomcat(咳咳,这是我自己为了方便理解才说的,标准称呼是嵌入式servlet容器,英文全程:EmbeddedServletContainer),以下假如看到小tomcat,就要理解是嵌入式servlet容器?。‥mbeddedServletContainer),这么长的单词一定要记下来,因为后面会有更长的.....

  首先简单说说servlet容器种类。常见的Tomcat(springboot默认),Jetty(适用于长连接,比如聊天这种),Undertow(不支持jsp,但是并发性能非常好),各有优势。

  打开pom配置文件,可以看到

java小新人 带着萌新看springboot源码

然后将tomcat变为jetty就可以了,maven就会自动帮你下载对应的jar包

java小新人 带着萌新看springboot源码

  运行springboot,控制台输出如下所示,你就成功了。

java小新人 带着萌新看springboot源码

  到这里,springboot配置servlet三大组件以及切换嵌入式servlet容器就讲完了,接下来干什么想必都很清楚,当然是怎么修改容器的默认配置以及运行原理??!

  不知道大家有没有发现上图端口是8081(默认8080),在配置文件是怎么配置的(以前说过,估计很多人都知道),为什么会起作用?我能不能用@Bean的方式修改容器默认参数呢?以及其中的运行原理?当然,也会带着大家一起走走从主配置类开始,通过一个run方法,逐渐的就运行容器的过程。

  后面还会说说不用嵌入式servlet容器的方式,我就用我外界下载的tomcat和springboot应用一起用,并且还支持jsp。

转载自://blog.51cto.com/13842645/2317626

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



专业虚拟币交易平台源码开发出售
国内相关虚拟币市场的限制政策,放缓了虚拟币交易的发展脚步。同时,虚拟币交易平台源码开发也开始进入自我完善休整的重要时期。怎样在这个领域,确定在不违反相关政策的情况下,做好自身业务,继续虚拟币交易平台源码开发,是整个行业在发展过程中需要考虑的重要一环。虚拟币交易平台源码开发,跟很多的技术开发一样,同样是需要专业的计算机研发技能作为强大的技术支撑,否则很难进行之后的开发工作的。由于技术难度和专业性能比
第一天Java基础学习
下载JDK然后安装,修改环境变量。D:\java\worktool\jdk1.8.0_171C:\ProgramFiles(x86)\CommonFiles\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShel
清除指定路径下所有文件的小工具
importtkinterfromtkinterimport*importospath='C:\\Users\\1\\AppData\\Local\\Microsoft\\Windows\\TemporaryInternetFiles'classClean:#传入window参数def__init__(self,init_window):...
Java mail应用实例
//带附件的邮件发送器,废话少说,直接上源码;本来有加载图片功能,但是不同分辨率的图片不好处理,预览的时候容易把界面挡住,所以就删掉了。WindowBuilder可运行。publicclassAPP{privateJFrameframe;JTextFieldtxtqqcom;JTextFieldtextField;JTextFieldtextField_2...
Fabric 1.1源代码分析之 Chaincode(链码)初始化
Fabric1.1源代码分析之Chaincode(链码)初始化#ChaincodeSupport(链码服务端)1、Endorser概述1、Endorser相关代码分布在protos/peer/peer.pb.go和core/endorser目录。在peer/node/start.go的serve()方法中注册了endoser服务serverEndorser:=endorser.Ne...
MapReduce过程详解 基于北京赛车北京PK10源码下载平台出租网站开发
本文北京赛车北京PK10源码下载平台出租网站开发【大神源码论坛】dsluntan.com?【布丁源码论坛】budingbbs.com企娥3393756370基于hadoop2.x架构详细描述了mapreduce的执行过程,包括partition,combiner,shuffle等组件以及yarn平台与mapreduce编程模型的关系?! apreduce的简介和优点  ?mapreduce是...
注册微信小程序需要多少钱
越来越多的人开始关注微信小程序,这给人们提供了很大的便利。我们可以使用微信小程序娱乐、购物。很多商家看到了微信的用户数量群庞大,纷纷加入小程序开发的行列。其实微信小程序还有不少发展空间,那么注册一个微信小程序需要多少钱呢?这可能是一些企业会考虑的问题。
小程序码分享及文件流转换
需求:用户点生成二维码,然后生成小程序二维码,然后下个用户扫一下成为被扫者的下级。难点:图片文件流流的转换(新建文件,写入文件流,其实就是一堆乱码)//获得小程序分享二维码publicfunctionshares(){$appId='wx0faa5945ac1b278f';$secret='ed495f4332b53eb69b8...
乙太坊源码学习 客户端发起合约调用
我们都知道,乙太坊中的合约其实就是一段程序,一般由solidity开发。在这一段程序中,定义了:一系列的变量,用来做合约本地存储,一般只在合约内部被调用,也可以声明成public的,solidity编译器会自动为其生成对应的get函数。一个构造函数,仅在合约部署时被被自动调用一次,用来初始化合约;很多方法,其中只有public或external的方法才可以被外界调用,用户主要面向的是这些函数。所谓...
行业新生态,从区块链系统开发开始
??区块链技术的特征使其可以在互联网的各个领域大展拳脚,为各行各业提供一种全新的解决方案,如金融、信贷、物联、溯源等等。不少区块链项目针对特定行业与领域,基于可信公链打造商业应用,形成了全新的行业生态。在文化行业,基于区块链构建生态平台,已经有不少优秀的项目。?????针对文化资产交易领域,一套基于全球文化产业的区块链解决方案,期望通过区块链解决文化内容产业存在的诸多问题,以实现快速IP确权、...