这系列博客是博主在学习Spring Boot过程中的一个总结,在写每一篇博客前我都参考了大量的博客和资料,希望能够帮助大家少走弯路。在进行Spring Boot学习前确保有一定的Spring基础,因为从本质上来说Spring Boot就是Spring
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。它具有以下特点:
- 创建独立的Spring应用程序
- 嵌入的Tomcat,无需部署WAR文件
- 简化Maven配置
- 自动配置Spring
- 提供生产就绪型功能,如指标,健康检查和外部配置
- 绝对没有代码生成和对XML没有要求配置
以上引用了百度百科对Spring Boot的介绍,具体细节等后续再逐一介绍,现在让我们来感受一下Spring Boot的强大之处,让我们来一起来搭建第一个Spring Boot程序
Maven 3.2.5
Eclipse Mars.2
SpringBoot 1.3.0.RELEASE
<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.0modelVersion>
<groupId>com.roberto.springbootgroupId>
<artifactId>springboot-practiceartifactId>
<version>1.0.0-SNAPSHOTversion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.3.0.RELEASEversion>
parent>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
dependencies>
project>
@RestController
@SpringBootApplication
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}
注释:@SpringBootApplication是SpringBoot中提供一个比较方便的注解,使用该注解等价于以默认属性使用@Configuration, @EnableAutoConfiguration和@ComponentScan
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.0.RELEASE)
...
到此发现构建Web程序原来这么简单,这就是SpringBoot的强大之处,它不再需要手动的导入那么多的依赖,配置一系列复杂的整合文件
不是每个人都喜欢继承spring-boot-starter-parent POM,你可能需要使用公司标准parent,或你可能倾向于显式声明所有Maven配置,如果你不使用 spring-boot-starter-parent,通过使用一个scope=import的依赖,你仍能获取到依赖管理的好处,其意义为引入该dependency的pom中定义的所有dependency定义。pom文件如下:
<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.0modelVersion>
<groupId>com.roberto.springbootgroupId>
<artifactId>springboot-practiceartifactId>
<version>1.0.0-SNAPSHOTversion>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-dependenciesartifactId>
<version>1.3.0.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
dependencies>
project>
<build>
<finalName>springboot-practicefinalName>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
<build>
<finalName>springboot-practicefinalName>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<executions>
<execution>
<goals>
<goal>repackagegoal>
goals>
execution>
executions>
plugin>
plugins>
build>
jar tvf springboot-practice-1.0.0-SNAPSHOT.jar
java -jar springboot-practice-1.0.0-SNAPSHOT.jar
运行结果如下
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.0.RELEASE)
...
推荐一款快速构建Spring Boot程序的插件Spring Tool Suite,此处不具体介绍安装步骤,可自行查找安装教程