Spring Boot 用于简化构建、开发、测试和部署Spring 应用程序的过程。该框架致力于快速应用程序开发(“开发”),以便开发人员不必定义样板配置。这使得开发人员能够通过商定的配置更好更快地开发、测试和部署Spring 应用程序。
Spring Boot的特点
能够创建包含Tomcat、Jetty 和Undertow 的独立应用程序无需部署WAR 文件依赖一些常用的包来提供自定义启动器以简化配置在可能的情况下自动配置Spring 应用程序和第三方库以进行指标、运行状况检查、外部化配置等,无需代码生成或XML 配置即可提供生产就绪的功能。
从开发的角度来看,SpringBoot之前的Spring应用程序不需要大量的配置bean,无论是通过XML还是通过注解。 Spring框架在很多这样的配置情况下是非常不友好的,Spring Boot改进了这个问题。这是目前使用Spring开发应用程序的主要方式。从部署的角度来看,Spring Boot允许您嵌入服务器以加快测试和部署速度。由于Spring Boot 优越的封装性,可以方便、快速地进行测试。从运维的角度来看,Spring Boot提供了指标,可以让你随时监控应用程序的运行状态。
随着微服务的发展,Spring Boot选择流行的微服务组件进行封装,通过这些组件形成Spring Cloud的各种组件,使得微服务开发快速、简单、高效,可以构建大规模系统。
搭建Spring Boot开发环境
Eclipse
如果您想使用Eclipse 开发Spring Boot 项目,请首先启动IDE。
安装过程中会出现几个弹出窗口。检查所有内容,然后单击右下角的“信任”按钮继续安装。安装完成后,重新启动后将出现一个弹出窗口。该插件可以像往常一样使用并创建一个新的Spring 项目。
Thymeleaf是Spring Boot官方推荐的视图模板技术,而Spring Web目前不仅支持Spring MVC,还嵌入了Tomcat作为依赖。直接使用Java程序启动Web
点击完成创建
JetBrains IDEA
单击“创建”按钮即可完成Spring Boot 项目的创建。
运行Spring Boot
项目创建完成后,SpringbootmybatisdemoApplication.java将作为项目入口文件,如上图所示。为了测试Spring Boot 启动,我们将稍微修改相关文件以提供一些信息。这是代码:
包com.sbm.springbootmybatis;
导入org.springframework.boot.SpringApplication。
导入org.springframework.boot.autoconfigure.SpringBootApplication。
导入org.springframework.web.bind.annotation.GetMapping。
导入org.springframework.web.bind.annotation.RestController。
导入java.util.HashMap。
导入java.util.Map。
@SpringBootApplication
@RestController
公共类SpringbootmybatisdemoApplication {
@GetMapping(\’/测试\’)
公共MapString,字符串测试(){
MapString, String map=new HashMap();
map.put(\’你好\’, \’世界\’);
map.put(\’消息\’,\’开始Spring Boot测试\’);
返回地图。
}
公共静态无效主(字符串[] args){
SpringApplication.run(SpringbootmybatisdemoApplication.class, args);
}
}
下次启动程序时,您将看到如下所示的场景。
然后访问地址localhost:8080/test如下图所示。
这个过程说明Spring Boot比传统的Spring开发要快很多,也方便很多。
Spring Boot运转逻辑
项目创建完成后,查看自动创建的pom文件。添加了一些必需的依赖项,但不会太多,因为每个Spring Boot 启动器都会引入它们。 spring-boot-starter-tomcat有依赖,所以不需要部署Tomcat来运行Spring。您已经创建了一个启动项目。
事实上,即使去掉Tomcat 依赖,项目也能成功启动,因为spring-boot-starter-web 也作为依赖加载了。这就是SpringBoot 的工作原理。
ServletInitializer.java 文件是在创建项目时自动生成的。其源代码如下。
/**
* 自定义Spring BootServletInitializer 以在传统servlet 容器中部署Spring Boot 应用程序。
*重写configure方法来指定应用程序入口点。
*/
包com.sbm;
导入org.springframework.boot.builder.SpringApplicationBuilder。
导入org.springframework.boot.web.servlet.support.SpringBootServletInitializer。
公共类ServletInitializer 扩展SpringBootServletInitializer {
/**
* 配置Spring Boot 应用程序的构建过程。
* 此方法允许您通过指定应用程序的源在传统servlet 容器中启动Spring Boot 应用程序。
*
* @param 应用程序SpringApplicationBuilder 实例。用于配置和构建Spring Boot 应用程序。
* @return SpringApplicationBuilder 实例。配置为准备构建应用程序。
*/
@覆盖
受保护的SpringApplicationBuilder 配置(SpringApplicationBuilder 应用程序){
返回application.sources(SpringBmApplication.class);
}
}
顾名思义,该类继承自SpringBootServletInitializer,用于初始化servlet的执行环境。
从继承图中来看,SpringBootServletInitializer实现了WebApplicationInitializer接口。我们发现只要实现了WebApplicationInitializer接口,这个类就会被Spring MVC提供的SpringServletContainerInitializer加载。它实现了Servlet3.0标准的ServletContainerInitializer接口,这使得它能够在嵌入式Tomcat容器中被检测到并运行,并运行SpringBootServletInitializer。通过这种关系,嵌入式Tomcat可以为Spring Boot创建一个SpringIoC容器,这样你的项目就会运行起来。
#以上Spring Boot与主流互联网应用框架集成的基本概念相关内容摘自网络,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92637.html