传统的Servlet在spring boot中怎么实现的?
本文主要内容:
1:springboot一些介绍
2:传统的servlete项目在spring boot项目中怎么实现的?web.xml、url-patterns怎么设置?
3:有几种实现方式?分别是什么?
4:代码位置
spring boot 三大特性
组件自动装配:webMVC、webFlux、JDBC等
嵌入式Web容器:Tomcat、Jetty以及undertow
生产准备特性:指标、健康检查、外部化部署等
组件自动装配:
激活自动装配注解:@EnableAutoConfiguration
配置:/META-INF/spring.factories
实现:XXXAutoConfiguration.
我们以spring-boot-autoconfigure的jar下spring.factories为示例:
可以看到key是接口后没是实现。实现就是XXXAutoConfiguration.
嵌入式web 容器:
Web Servlet容器:Tomcat、Jetty以及undertow
Web Reactive容器:Netty Web Server
生产准备特性:
指标:/actuator/metrices
健康检查:/actuator/health
外部化配置:/actuator/configprops
Web应用:
传统的Servlet应用
Servlet组件:Servlet、Filter、listener
Servlet注册到spring boot中:Servlet注解、Spring Bean、RegistrationBean
异步非阻塞:异步Servlet(web 3.0特效)、非阻塞Servlet(servlet 3.1特性)。
来源:凯哥Java(kaigejava)
www.kaigejava.com
传统Servelt应用:
一:添加pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
二:Servlet组件讲解
我们先来回忆下使用Sevlet怎么写的:
1:写个类继承HttpServlet。然后重新doGet、doPost方法。如下图:
2:在web.xml文件中需要配置servlet-name、servlet-calss、servlete-mapping中需要配置url-pattern。如下图:
然后启动tomcat之后,在地址栏中输入xxx:xx/servlet/HelloWorld.
上面是Servlet的步骤。
在spring boot中,提倡使用注解。那么上面的servlet使用spring boot怎么使用?
spring boot没有web.xml怎么配置?访问url怎么配置?
请看下面代码:
@WebServlet(urlPatterns = "/servlet/HelloWorld")
public class MyServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("my doGet method");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("my doPost method");
}
}
其中@WebServlet注解和UrlPatterns的功能同web.xml中<servlet-mapping>中的urlpattern.
我们在来看看启动类上添加:
@SpringBootApplication
@ServletComponentScan("com.kaigejava.web.servlet")
public class Springbootdemo1Application {
public static void main(String[] args) {
SpringApplication.run(Springbootdemo1Application.class, args);
}
}
其中的ServletComponentScan就是扫描servlet的。可以看做是web.xml中<servlet>标签下的<sevlet-class>。
两者对比:
启动项目,访问:
达到预期效果。说明传统的servlet在springboot项目中可以很好的兼容。
我们总结下:
SpringBoot中使用传统的Servlet。
实现方式:
创建一个类添加@WebServlet,继承HttpServlet,注册到spring boot容器中。
其中URL映射使用注解:@WebServlet(urlPatterns = "/servlet/HelloWorld")
将servlet注册到spring容器中使用注解:ServletComponentScan(basePackages=“com.kaigejava.web.servlet”)
我们知道Sevlete还有其他两个组件:Filter和Listener.
那么这两个组件在springboot中又分别使用哪些注解呢?
根据servlet注解我们可以看到是@webServlet.
所以,filter对应的就是@WebFilter、listener对应的就是@WebListener注解。
实现方式有三种方式:
第一种:使用servlet注解。如上面我们演示的@Webservlet注解。
其实就是@ServletComponentScan+@webServlet
或者+@WebFilter或者+@WebListener注解
方式二:使用spring注解
@Bean+Servlet(Filter\Listener)
方式三:使用RegistrationBean方法
ServletRegistrationBean
FilterRegistrationBean
ServletListenerRegistrationBean
以上三种都可以。
代码已发布到git上面。欢迎大家一起学习。
相关推荐
在这个"spring boot简单实现"的项目中,我们可以看到核心关注点是如何设置和使用Spring Boot的拦截器,以及如何将项目构建成一个可直接运行的实例。 首先,我们来深入理解Spring Boot的核心特性: 1. 自动配置:...
如果你想在WAR包中部署并在Servlet容器中运行,你可以参考`spring-boot-admin-sample-war`示例项目。而`spring-boot-admin-sample-servlet`项目则展示了如何在添加安全验证的情况下配置Spring Boot Admin Server。 ...
在文档的“开始”部分,介绍了Spring Boot的基础知识,包括系统要求、安装方法以及如何创建和运行第一个Spring Boot应用。系统要求部分会详细说明支持的Servlet容器。Spring Boot安装包括了为Java开发者准备的安装...
- 使用Maven创建一个新的项目,并在pom.xml文件中添加Spring Boot Starter Web依赖。 - **11.2. 添加classpath依赖** - 在项目的classpath中添加所需的依赖库。 - **11.3. 编写代码** - **11.3.1. @...
Spring Boot允许开发者快速地添加依赖,主要通过在项目中添加特定的父工程坐标来实现,这个父工程就是`spring-boot-starter-parent`,它为项目提供了基本的依赖管理。开发者只需添加所需的具体依赖即可,不需要担心...
在Spring Boot中,Servlet的使用变得非常简便,因为Spring Boot内置了Servlet容器,如Tomcat或Jetty,这些容器会自动处理Servlet的注册和管理。本文将详细介绍如何在Spring Boot中添加自定义Servlet。 首先,Spring...
3. 内嵌式Servlet容器:Spring Boot支持内嵌Tomcat、Jetty或Undertow,无需额外部署WAR文件。 4. 健康检查:提供健康检查API,用于监控系统状态。 5. 配置文件:通过application.properties或application.yml进行...
Spring Cloud是基于Spring Boot实现的一系列框架的集合,提供了在分布式系统(如配置管理、服务发现、断路器、智能路由等)中快速构建常见模式的工具。 此外,Spring Boot还提供了一系列的生产就绪特性,例如通过...
1. 添加依赖:在`pom.xml`文件中引入Spring Boot的`spring-boot-starter-web`依赖,以及Tomcat的`tomcat-embed-jasper`依赖,它们包含了Servlet的实现。 ```xml <groupId>org.springframework.boot ...
`spring-boot-2.7.0`源码中,`EnvironmentPostProcessor`接口用于在Spring Environment初始化后处理环境变量,从而实现环境感知。 4. **Web应用启动**:Spring Boot的`WebApplicationInitializer`和`SpringBoot...
本文将深入探讨如何在Spring Boot项目中整合Mybatis,并利用Druid数据库连接池进行性能监控。 首先,我们要理解Spring Boot的核心理念——约定优于配置。在Spring Boot项目中,我们不再需要手动编写大量的XML配置...
### Spring Boot 中 Servlet Filters 和 Listeners 的实现与运用 #### 一、概述 Spring Boot 是一个基于 Spring 框架的快速应用开发平台,它简化了传统的 Spring 应用配置,使得开发者能够更加专注于业务逻辑的...
在使用 Spring Boot 实现异步请求时,需要在 Servlet 中添加 asyncSupported = true 属性,以启用异步处理。在 Filter 中也需要添加 asyncSupported = true 属性,以便在 Filter 中也能启用异步处理。 在 Spring ...
1. 添加`spring-boot-starter-web`依赖,它包含Servlet容器,使得我们可以在Spring Boot应用中运行JSP。 2. 配置`spring.mvc.view.prefix`和`spring.mvc.view.suffix`属性,分别设置JSP页面的前缀和后缀,例如:`/...
在Spring Initializr中,我们可以选择web依赖来创建一个新的Spring Boot项目。 创建项目后,我们需要在主类上添加`@SpringBootApplication`注解,这是Spring Boot的入口点,它结合了`@Configuration`,`@...
在这个压缩包中,"spring-boot-2.7.17"可能包含的是源码仓库,包括Spring Boot框架的各个模块,如spring-boot-project、spring-boot-autoconfigure、spring-boot-starter-parent等。开发者可以通过阅读源码理解...
在Spring boot中通过HttpSessionListener监听器统计在线人数是一种常见的技术实现方式,适用于需要跟踪和管理用户会话状态的Web应用程序。以下是从给定文件中提炼的关键知识点。 首先,了解HttpSessionListener接口...
* 在 IDEA 或 Eclipse 中,直接运行应用的 Spring Boot 启动类的 #main(String[] args) 启动。 * 如果是 Web 项目,可以打包成 War 包,使用外部 Tomcat 或 Jetty 等容器。 8. Spring Boot 中的监视器是什么? ...
如何使用Spring Boot实现异常处理? Spring Boot中异常处理通常采用`ControllerAdvice`机制来实现: 1. 创建一个带有`@ControllerAdvice`注解的类,该类充当全局异常处理器。 2. 在此类中定义一个或多个带有`@...
1.23 Spring Boot Servlet 1.24 Spring Boot过滤器、监听器 1.25 Spring Boot 拦截器HandlerInterceptor 1.26 Spring Boot启动加载数据CommandLineRunner 1.27 Spring Boot环境变量读取和属性对象的绑定 1.28 Spring...