介绍spring boot

spring boot 就是给使用spring的人带来方便,不在需要繁杂的xml配置。

Spring Boot可以轻松创建可以“运行”的独立的,生产级的基于Spring的应用程序。 大多数Spring Boot应用程序需要很少的Spring配置。 您可以使用Spring Boot创建可以使用java -jar或更多传统war部署启动的Java应用程序。 我们还提供运行“spring script”的命令行工具。
spring boot的主要目标是:

  • 为所有Spring开发提供一个更快,更广泛的入门体验。
  • 被要求开箱即用,但随着需求开始偏离默认值而迅速脱离出来。
  • 提供大量项目(例如嵌入式服务器,安全性,指标,运行状况检查,外部化配置)通用的一系列非功能特性。
  • 绝对没有代码生成,也不需要XML配置。

    系统环境

我这里学习的版本,spring boot 1.5.7 release , 要求java 7+,spring framework 4.3.11 + release , maven 3.2+ 和 gradle2.9 + ,如果使用这些注意版本。

serlvet 容器

默认是 tomcat 8 ,可以换成 jetty。

安装 spring boot

spring boot 还提供了一个客户端来操作,还需要用到groovy来写脚本,个人觉得直接用java传统的方式运行run as -> java application就行。

配置

尽管您可以复制Spring Boot jar到项目中,但是官方推荐您使用支持依赖关系管理的构建工具(如Maven或Gradle)。

maven 配置 spring boot

Spring bbot依赖使用org.springframework.boot groupId。 通常,您的Maven POM文件将从spring-boot-starter-parent项目继承,并声明一个或多个“starters”的依赖关系。 Spring Boot还提供了一个可选的Maven插件来创建可执行的jar。

这里列出典型的pom.xml 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?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>

<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>

<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
</parent>

<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

gradle 配置 spring boot

可以使用org.springframework.boot组声明Spring boot依赖项。 通常,您的项目将声明一个或多个“gradle”的依赖关系。 Spring Boot提供了一个有用的Gradle插件,可用于简化依赖关系声明并创建可执行的jar。

列出典型的build.gradle 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
plugins {
id 'org.springframework.boot' version '1.5.7.RELEASE'
id 'java'
}


jar {
baseName = 'myproject'
version = '0.0.1-SNAPSHOT'
}

repositories {
jcenter()
}

dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("org.springframework.boot:spring-boot-starter-test")
}

安装 spring boot CLI

Spring Boot CLI是一个命令行工具,可以使用,如果你想用Spring快速原型。 它允许您运行Groovy脚本,这意味着您具有熟悉的类似Java的语法,没有太多的样板代码。 您不需要使用CLI来使用Spring Boot,但它绝对是将Spring应用程序从本地开始的最快方式。

但是我推荐使用,用ide比较好,毕竟项目大了好管理。

spring boot 的简单实现

用ide(eclipse 或 IntelliJ IDEA)创建一个maven项目,直接添加pom.xml文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.7.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

创建个HelloSBoot类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@EnableAutoConfiguration
public class HelloSboot {

@RequestMapping("/")
@ResponseBody
String home() {
return "you did it";
}

public static void main(String[] args) throws Exception {

SpringApplication.run(HelloSboot.class, args);
}
}

这就是最简单的spring boot程序了写完了。run as -> java application即可,运行后显示如下,并打开浏览器输入:http://localhost:8080/,会显示you did it。

console显示:

1
2
3
4
5
6
7
8
9
10

. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.7.RELEASE)

//后面有很多,在这略。。。

@Controller 和 @RequestMapping 注解

这些都是spring 的注解, 了结果spring 或者 spring mvc 的很容易理解。

我们的Example类的第一个注释是@Controller。 这被称steretype 注释。 它为人们阅读代码提供了一些提示,对于Spring来说,这个类具有特定的作用。 在这种情况下,我们的类是一个web @Controller,所以Spring在处理传入的Web请求时会考虑它。 @RequestMapping注释提供“路由”信息。 告诉Spring,任何具有路径“/”的HTTP请求都应映射到home方法。 @ResponseBody注释告诉Spring将生成的字符串直接返回给调用者。

@EnableAutoContiguration 注解

第二个类级别的注释是@EnableAutoConfiguration。 这个注释告诉Spring Boot根据你添加的jar依赖关系来“猜”你将如何配置Spring。 由于spring-boot-starter-web添加了Tomcat和Spring MVC,自动配置将假定您正在开发Web应用程序并相应地设置Spring。

只想说就是怎么智能!。

创建可运行jar包

为了创建可运行jar包,需要添加pom.xml文件(上面典型pom.xml里有完整文件):

1
2
3
4
5
6
7
8
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

导出jar包即可。

完结。