目录
三、SpringBoot内置容器之为什么使用Tomcat(Jetty、Tomcat、Undertow)
四、 SpringBoot实现热部署(devtools\JRebel)
一、SpringBoot简介
Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。
也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),
Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑注1:敏捷式开发
注2:它本身并没有提供任何的解决方法,不像mybatis解决了持久化的问题,springmvc解决了前端控制层框架的一些问题;它主要是集成了第三方的框架,比如springmvc mybatis shiro quartz.....因此可以理解成“新瓶装老酒”。
二、入门实例
File-->New-->Project...
Spring Initializr
Maven Project
Web
spring web
https://start.spring.io/ (官网,不稳定,springboot项目项目创建失败)
https://start.aliyun.com/ (用官网的下就很卡,容易创建失败,我们可以用阿里云提供的,快速稳定)
这里我们要选用Java Version版本为8的,最低要使用的版本
这里由于我只作一个入门案例,所以我只选择了Web->Spring Web,这相当于我们把Springmvc导进来了
接下来就下一步next,选好自己放置目录后,下一步next,创建成功后就如下图一样了
如果我们看到java包目录是蓝色的,就显示我们项目是创建成功的,接下来我们可以先运行一下 启动类SpringbootApplication,运行成功后,就可以开始写代码了,我这里写一个不连数据库方法运行看看
注::包和类不能乱改,因为程序只加载Application.java所在包及其子包下的内容,我们的包一定要写在springboot给我们提供的目录下才有用!!!(我这里是com.zking.springboot01)运行项目后,我们可以在浏览器进行访问了
由上面的图可以看出我们是没有写项目名,也能访问成功的,因为SpringBoot提供了内嵌的Tomcat
使用内嵌Tomcat的好处:
①web应用之间互不影响(springcloud)
②访问地址简化
外置
http://localhost:8080/项目名/xxx
内置
http://localhost:8080/xxx
三、SpringBoot内置容器之为什么使用Tomcat(Jetty、Tomcat、Undertow)
spring boot内置容器性能比较(Jetty、Tomcat、Undertow)
参考URL: https://blog.csdn.net/syx1065001748/article/details/98883727通过测试发现,在高并发系统中,Tomcat相对来说比较弱。在相同的机器配置下,模拟相等的请求数,Undertow在性能和内存使用方面都是最优的。并且Undertow新版本默认使用持久连接,这将会进一步提高它的并发吞吐能力。所以,如果是高并发的业务系统,Undertow是最佳选择。
其实在并发量不大的情况下 Undertow和其它两款 Servlet Web 容器 Jetty 、Tomcat 的差距并不是很大。 Undertow 的优势是高并发下的吞吐量。你可以根据自己的实际需要来选择。
Tomcat
Tomcat是Apache基金下的一个轻量级的Servlet容器,支持Servlet和JSP。Tomcat具有Web服务器特有的功能,包括 Tomcat管理和控制平台、安全局管理和Tomcat阀等。Tomcat本身包含了HTTP服务器,因此也可以视作单独的Web服务器。但是,Tomcat和ApacheHTTP服务器不是一个东西,ApacheHTTP服务器是用C语言实现的HTTP Web服务器。Tomcat是完全免费的,深受开发者的喜爱。再者Tomcat在这三者是使用最简单的一种。
四、springboot的配置修改
application.properties-->application.yml(yaml/yml)
注:问.properties格式与.yml格式的区别?
注:.yml格式不支持@PropertySource注解导入
可以看到,yml格式的配置文件有着可读性更强的树型结构,也更加简洁,但对于新手而言,properties格式的配置文件也是不错的选择,易于理解,总之,两种格式的配置文件殊途同归,springboot项目都可以识别。个人喜欢用yml格式的,看上去简洁,也少去了代码重复性。
注:两种配置文件在 springboot中都可以识别,用其中一种就可以。如果一个目录下存在两种格式的配置文件,则先读取properties格式的配置文件,后读取yml格式的配置文件。读取到的配置以第一次的为准。
四、 SpringBoot实现热部署(devtools\JRebel)
为什么要用热部署 ?
在进行SpringBoot项目开发时,每次修改类后,都需要重启项目才能对所做的修改进行调试,使用热部署工具,可以无需重启服务,节约时间。
热部署(devtools\JRebel)选择其中一种就好了,但个人推荐使用前者
devtools:
1. 添加依赖(pom.xml)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
2. 所以需要设置IDEA的自动编译:
(1)File-Settings-Compiler-Build Project automatically
(2)ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running
![]()
测试一下是否部署成功,先将idea重启一下,然后运行项目,接下来修改一下Controller类, 保存:应用不会重启,但会重新加载,页面会刷新
JRebel:
1、安装JRebel
2,选择许可证服务器方式
https://jrebel.qekang.com/0f21ab74-2815-4310-a581-3fad172d63a4
电子邮件:我填的是自己的邮件
3,关闭在线通知,切换到离线模式
![]()
4、使用JRebel
(1)File-Settings-Compiler-Build Project automatically
(2)ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running
接下来同devtools一样测试就好了
五、总结
本文中简单介绍了SpringBoot以及SpringBoot内置容器的选择+SpringBoot热部署
如有不足,欢迎补充.......
敖丙说过:你知道的越多,不知道的越多
作者:代码世界里的小李