文章目录
1、Spring Boot 2.x概述
2018年3月初,Spring Boot发生了重大版本更替,正式更新到了2.x的正式(GA)版本。在学习Spring Boot的过程中使用的参考书籍《深入浅出Spring Boot 2.x》使用的Spring Boot的版本是2.0.0.RELEASE版本。但在本地IDE中的联系项目使用的版本为2.1.6.RELEASE。这里需要注意的是Spring Boot 2.x和Spring Boot 1.x在使用上有很多地方存在不同,并且只能支持JDK 8或者以上的版本。
1.1 Spring Boot与Spring
在之前的系列博客《Spring使用篇系列博客传送门》中,我们曾经讨论过在Spring框架中何时使用注解,何时使用XML的问题,在这里我觉得有必要再次将它提出来做一下明确。
-
对于自己编写的业务类使用注解。例如,对于MVC开发,控制器使用@Controller注解,业务层使用@Service注解,持久层使用@Repository注解。
-
对于一些公用的Bean,例如对于数据库、第三方资源等则使用XML进行配置。
这已经是一个不成文的共识,直至今日这样的配置方式还在企业中广泛使用着。
随着Spring的版本不断更新,在Spring 4.x时注解功能越来越强大,对于XML的依赖越来越少。与此同时,Pivotal团地在原有Spring的基础上主要通过注解的方式继续简化了Spring框架的开发,他们基于Spring框架开发了Spring Boot,所以Spring Boot并非是代替Spring框架,而是让Spring框架更加容易得到快速的使用。
随着近年来微服务的流行,越来越多的企业需要快速的开发,而Spring Boot除了以注解为主的开发,还有其他的绑定,例如,对服务器进行了绑定和默认对Spring的最大化配置,所以开发者能够尽快进行代码开发、发布和测试自己的项目。这符合了现金微服务快速开发、测试和部署的需要,于是越来越多的企业选择Spring Boot作为开发的选型,进而使得Spring Boot更加兴旺流行起来。
1.2 Spring Boot与Spring MVC
在之前的系列博客《Spring MVC使用篇系列博客传送门》中,详细介绍了如何使用Spring MVC框架开发一个MVC的Web项目,这里便不再赘述,如感兴趣请查看博看《Spring MVC使用篇(二)—— 环境搭建》。其核心是需要配置DispatcherServlet,也需要配置Spring IoC的容器。而对于这些配置可以选择使用web.xml的配置来实现,当然如果使用的是Servlet 3.1规范,也可以继承又Spring MVC提供的AbstractAnnotationConfigDispatcherServletInitializer来配置Spring MVC项目。
传统的Spring MVC开发需要配置的内容还是比较多的,而且对设计人员要求较高。在开发完成后,开发者还需要找到对应的服务器去运行,例如Tomcat或者Jetty等,这样既要进行开发,又要进行配置和部署,工作量不小。
而使用Spring Boot开发后,我们可以通过Maven引入多个相关的Spring Boot的starter,具体依赖如下所示。Spring Boot会将对应的jar包加载到工程中,而且它还会把绑定的服务器也加载到工程中,这些都不需要你再进行处理。正如Spring Boot承诺的那样,绑定服务器,并且实现Spring的尽可能配置,采用约定优于配置的原则。
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ccff.springboot.demo</groupId>
<artifactId>chapter1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>chapter1</name>
<packaging>war</packaging>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--aop包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--Web开发包,将载入Spring MVC所需要的包,且内嵌Tomcat-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--加载测试依赖包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>