传统的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开发者准备的安装...
Spring Boot允许开发者快速地添加依赖,主要通过在项目中添加特定的父工程坐标来实现,这个父工程就是`spring-boot-starter-parent`,它为项目提供了基本的依赖管理。开发者只需添加所需的具体依赖即可,不需要担心...
- 使用Maven创建一个新的项目,并在pom.xml文件中添加Spring Boot Starter Web依赖。 - **11.2. 添加classpath依赖** - 在项目的classpath中添加所需的依赖库。 - **11.3. 编写代码** - **11.3.1. @...
在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进行...
1. 添加依赖:在`pom.xml`文件中引入Spring Boot的`spring-boot-starter-web`依赖,以及Tomcat的`tomcat-embed-jasper`依赖,它们包含了Servlet的实现。 ```xml <groupId>org.springframework.boot ...
Spring Cloud是基于Spring Boot实现的一系列框架的集合,提供了在分布式系统(如配置管理、服务发现、断路器、智能路由等)中快速构建常见模式的工具。 此外,Spring 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-2.7.17"可能包含的是源码仓库,包括Spring Boot框架的各个模块,如spring-boot-project、spring-boot-autoconfigure、spring-boot-starter-parent等。开发者可以通过阅读源码理解...
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中通过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...
在本小实例中,我们将基于 "Spring Boot in Action" 一书中的示例来探索 Spring Boot 的核心概念和实践应用。 首先,让我们理解 Spring Boot 的核心特性: 1. **起步依赖(Starters)**:Spring Boot 提供了一系列...