介绍
作为Java开发人员,我们很可能直接或间接地使用基于Spring Framework的应用程序。Spring有许多方法可以配置它的行为,它提供了使用基于XML的配置或使用Annotations的选项,JavaConfig正在成为新的基于Spring的应用程序的事实上的标准。虽然这些选项看起来非常好,但对于大型企业应用程序涉及数百个模块和复杂的业务规则,这些配置可能变得非常复杂。以下是大型应用程序可以为图片带来的一些复杂问题
每个模块都有自己的配置。
每个模块都包含自己的一组依赖项(第三方依赖项)
升级应用程序(例如Spring 4.x to 5.x)将变得复杂,因为我们需要确保正确升级所有必需的依赖项。
如果某些依赖项无法正常工作,那么尝试查找根本原因是一个大型应用程序非常复杂且具有挑战性。
所有上述问题或多或少都与确保在开发团队开始处理实际任务之前我们拥有一切有关。现在让我们谈谈我们用来处理任何基于Spring的应用程序的另一个用例,假设我们想创建一个基于Web的应用程序,这些是我们大多数人定期做的最常见的步骤
使用我们选择的Maven或IDE创建Web应用程序。
复制标准Web应用程序配置(Spring MVC应用程序的web.xml配置)。
根据我们的要求调整以上配置。
配置Spring MVC标准bean就像 ViewResolver, MessageSource etc.
配置要用于我们的应用程序的数据库属性。
建立DB层和底层确保数据库连接到位之前,我们就可以开始使用它(EntityManagerFactory,TransactionManager等等)
此列表可以根据我们的应用程序类型显着增长
所有上述步骤对我们来说都很明显,但它们给开发团队增加了很多开销,而不是专注于解决实际的业务问题,将消耗初始时间以确保一切都在正确的位置开始工作。将Spring Boot视为可以自动为我们完成这些初始任务的工具,确保团队可以快速开始解决实际业务问题而不是花时间在初始配置和设置。
Spring Boot提供了开箱即用的以下功能
它通过采用固定观点来简化Spring依赖关系(我们将在更详细地讨论它)。
Spring Boot提供了一组预先配置的技术/框架,以减少容易出错的配置,因此我们作为开发人员专注于构建业务逻辑而不是考虑项目设置。
你真的不需要那些大 XML configurations 项目。
直接嵌入Tomcat,Jetty或Undertow。
提供自以为是 Maven POM 的简化配置
使用Spring Boot,可以轻松管理和处理介绍部分中突出显示的问题。。我们不需要在升级期间手动搜索兼容的jar,Spring Boot将确保我们的应用程序升级到正确的版本(这称为在应用程序上工作,最小化)
让我们看一下pom.xmlWeb应用程序的示例,以了解示例Spring Boot配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javadevjournal.demo</groupId>
<artifactId>sample web application</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
</parent>
<name>rWeb Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
只需密切关注标签,Spring Boot就可以灵活地运行我们的应用程序,jar而不是强制我们使用war所需的包装类型。