我的个人博客:www.moonkite.cn
大家好,我是风筝
首先给各位介绍一个可以在 IDEA 中养宠物的插件,各位摸鱼的时候可以试用一下啊。
在 IDEA(也支持其他 Jetbrains 系列的开发工具) 中养宠物,代码也是开源的呦!
前几天有个弟弟不知道从哪儿搞来一个开源项目,正好满足他的需求。但是项目用的是 Spring ,而不是 Spring Boot。
然后问我说项目不知道咋启动,当然,我只告诉他装个Tomcat 配置上就行了。他甚至从来没碰过Tomcat,只是听过,连 Tomcat 都没下载过。具体没有告诉他,而是让他自己去查了。因为我也好几年没碰过纯 Spring Framework了,一直都是用 Spring Boot。
想想也是,自从用了 Spring Boot 后,确实就不关心 Tomcat 了。Spring Boot 项目一创建,直接哐哐写代码,然后一点按钮就运行,一点按钮就调试。等到部署的时候,都有自动部署流程,直接 Jenkins 一键部署了。从头到尾也接触不到 Tomcat,或者说没有直接接触 Tomcat。
因为Spring Boot 默认就是使用 Tomcat 作为Servlet 容器和 Web 服务器。它就是在 spring-boot-starter-web
这个包里被引入的。
所以说,有很多刚刚入行 Java 的或者入行2、3年的同学根本就没了解过 Tomcat 是啥。
Java Web 从最初的Servlet和JSP,到Spring框架的兴起,再到如今大行其道的Spring Boot,每一次变革都带来了开发效率的提升。但在提高效率的同时,很多底层的技术也被封装得严严实实的。
Tomcat
Apache Tomcat是一个开源的Java Servlet容器和Web服务器。它实现了Java Servlet、JavaServer Pages (JSP)、Java Expression Language和Java WebSocket技术的规范。目前 Tomcat 11 beta 版已经发布了。
Tomcat有下面几个核心功能
Servlet容器:Tomcat为Servlet提供运行环境,处理Servlet的生命周期。Web服务器:能够处理HTTP请求,提供静态资源。JSP引擎:将JSP编译成Servlet并执行。
如果不用 Spring ,也不用 Spring Boot ,就用老手艺 Servlet 的话,创建一个可以跑起来的项目很简单。相信很多人都没这么做过,我也也是刚学Java 的时候用过一点点,后来就用 Spring 了。1、创建一个Servlet
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println("Hello, Tomcat!");
}
}
2、配置 web.xml
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
后来 Spring 框架就出来了,Spring 一来,基本上所有的 Java Web 全都使用它了。
用 Spring 就方便多了,很多细节都不用关心了,配置配置XML文件就行了。但是你想要把项目跑起来,还是要自己安装 Tomcat 的。用 Spring 的话呢,还要考虑是构建 Jar 包,还是 War 包。
说到这儿,还有很多同学根本就没见过 War 包。
再后来 Spring Boot就出现了,彻底让 Java Web开发进入了一个新时代。它的设计理念是"约定优于配置",通过自动配置大幅减少了开发者的工作量。
作为一个开发者,创建完一个 Spring Boot 项目后,接下来就是安心写代码了,什么 Jar 包、War 包,什么 Tomcat 通通都不用关心了。
虽然不用关心甚至有的同学根本就不知道 Tomcat,但是其实我们每天都在用它,因因为它是 Spring Boot 默认内嵌的。
Spring Boot会自动配置Tomcat,无需开发者手动设置。我们只管写代码,运行调试就行了。
实际上在 Spring Boot 中,也可以启用 Tomcat 之外的 Java Web 服务,比如 Jetty或Undertow。
比如要使用 Jetty 作为内嵌 Web 服务。
首先先要把默认引入的 Tomcat 排除掉。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
然后将 Jetty 引入就可以了。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
还可以看看风筝往期文章
古时的风筝,一个程序员,一个写作者。