小编带着小白看springboot源码6

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

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

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

1.servlet配置

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

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

小编带着小白看springboot源码6_第1张图片

我们接着随意找个配置类(我图方便,就在那个main方法的主配置类加了),加入如下代码:

小编带着小白看springboot源码6_第2张图片

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

小编带着小白看springboot源码6_第3张图片

2.配置Filter

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

小编带着小白看springboot源码6_第4张图片
小编带着小白看springboot源码6_第5张图片

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

3.配置listener

listener最容易,因为前面两个还有配置url映射,这个listener不用配。写个listener,利用ServletListenerRegistrationBean添加到容器里。

小编带着小白看springboot源码6_第6张图片
小编带着小白看springboot源码6_第7张图片

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

最后的就是注意ServletListenerRegistrationBean这个类要传入泛型,打开这个类,可以看到我们可以定制监听器的类型

小编带着小白看springboot源码6_第8张图片

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容器啊(EmbeddedServletContainer),这么长的单词一定要记下来,因为后面会有更长的.....

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

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

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

小编带着小白看springboot源码6_第9张图片

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

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

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

后面还会说说不用嵌入式servlet容器的方式,我就用我外界下载的tomcat和springboot应用一起用,并且还支持jsp。这节来说个大家都比较熟悉的东西,就是servlet三大组件,servlet、filter、listener,再说说springboot的内置tomcat。

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

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

1.servlet配置

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

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

小编带着小白看springboot源码6_第10张图片

我们接着随意找个配置类(我图方便,就在那个main方法的主配置类加了),加入如下代码:

小编带着小白看springboot源码6_第11张图片

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

小编带着小白看springboot源码6_第12张图片

2.配置Filter

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

小编带着小白看springboot源码6_第13张图片
小编带着小白看springboot源码6_第14张图片

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

3.配置listener

listener最容易,因为前面两个还有配置url映射,这个listener不用配。写个listener,利用ServletListenerRegistrationBean添加到容器里。

小编带着小白看springboot源码6_第15张图片
小编带着小白看springboot源码6_第16张图片

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

最后的就是注意ServletListenerRegistrationBean这个类要传入泛型,打开这个类,可以看到我们可以定制监听器的类型

小编带着小白看springboot源码6_第17张图片

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容器啊(EmbeddedServletContainer),这么长的单词一定要记下来,因为后面会有更长的.....

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

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

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

小编带着小白看springboot源码6_第18张图片

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

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

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

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

在这里给大家提供一个学习交流的平台 点击链接免费体验大牛带你实操;https://ke.qq.com/course/260263?flowToken=1006876

具有1-5工作经验的,面对目前流行的技术不知从何下手,在公司待久了,过得很安逸,但跳槽时面试碰壁。

你可能感兴趣的:(小编带着小白看springboot源码6)