Spring Boot - 简介:

Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible. Spring.io

Spring Boot - 核心特性:

  • Spring Boot Starter:将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的依赖中。
  • 自动配置:Spring Boot的自动配置特性利用了Spring 4对条件化配置的支持,合理的推测应用所需要的Bean并自动化配置它们。
  • **命令行接口(CLI)**:Spring Boot CLI 发挥了Groovy的优势,并结合自动配置进一步简化Spring应用程序的开发。
  • Actuator:Actuator为Spring Boot应用添加了一定的管理特性。

Spring Boot - QuickStart:

使用Spring Initalizr构建Spring Boot项目:

要想使用Spring Initalizr,最简单直接的办法就是打开 http://start.spring.io,使用Spring Initalizr的web界面来构建Spring Boot项目。打开Spring Initalizr的web界面后,根据自己需求选择合适的选项:

示例代码:

Generate a Maven Project with Java and Spring Boot 1.5.6

Group: ws.object.springboot
Artifact: SpringBoot
Dependencies: Web JPA #可多选

如果在当前页面找不到你所需要的依赖,请点击 Switch to the full version ,打开后就能看到可用依赖的完整列表。

填写完成之后,点击Generate Project,Spring Initalizr就会为你生成一个名为SpringBoot.zip的文件,解压后项目结构如下:

➜ unzip SpringBoot.zip
➜ tree ./SpringBoot
./SpringBoot
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── ws
    │   │       └── object
    │   │           └── springboot
    │   │               └── SpringBoot
    │   │                   └── Application.java
    │   └── resources
    │       ├── application.properties
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── ws
                └── object
                    └── springboot
                        └── SpringBoot
                            └── ApplicationTests.java

16 directories, 6 files

如你所见,项目中基本没有代码,除了几个空目录之外,还包含了以下几样东西:

  • pom.xml : Maven工程的主要配置文件。
  • Application.java : 一个带有main()方法的类,用于引导启动应用程序。
  • ApplicationTests.java :一个空的JUnit测试类,它加载了Spring Boot自动配置的Spring应用上下文。
  • application.properties :一个空的properties配置文件,可以根据需要添加配置属性。
  • static目录 : 放置Web应用程序的静态内容(js,css,images…)。
  • templates目录 : 放置用于呈现模型数据的模板文件。
  • mvnw和mvnw.cmd文件:分别是Windows系统和类Unix系统下Maven的配置文件。

参考资料:**Stack Overflow **- What is the purpose of mvnw and mvnw.cmd files?

使用IntelliJ IDEA构建Spring Boot项目:

打开 IntelliJ IDEA,到Welcome to IntelliJ IDEA 界面,选择 Create New Project,左侧列表栏找到Spring Initalizr,选择自己需要的Project SDk,还有Initalizr Service URL ,Next,填写相关信息:

名称 说明 示例
Group Maven工程组的标识 ws.object.springboot
Artifact Maven工程的标识与项目名称一致 SpringBoot
Type 项目的构建方式 Maven Project
Packaging 打包方式 Jar
Java Version Java的版本信息 1.8
Language 编程语言 Java
Version 项目版本号 0.0.1-SNAPSHOT
Name 项目名称 SpringBoot
Description 项目简介 ……

当前页填写完成之后,点击Next,选择项目所需要的依赖,选择完成之后,进入到下一页选择项目的存放路径等信息,然后项目就构建完成了。

使用Spring Boot CLI构建Spring Boot项目:

Spring Boot CLI中有一些命令,可以帮我们快速构建Spring Boot项目,示例代码:

mkdir SpringBoot && cd SpringBoot
➜  SpringBoot spring init
Using service at https://start.spring.io
Content saved to 'demo.zip'
➜  SpringBoot ls
demo.zip
➜  SpringBoot unzip demo.zip
Archive:  demo.zip
   inflating: mvnw
   creating: .mvn/
   creating: .mvn/wrapper/
   creating: src/
   creating: src/main/
   creating: src/main/java/
   creating: src/main/java/com/
   creating: src/main/java/com/example/
   creating: src/main/java/com/example/demo/
   creating: src/main/resources/
   creating: src/test/
   creating: src/test/java/
   creating: src/test/java/com/
   creating: src/test/java/com/example/
   creating: src/test/java/com/example/demo/
  inflating: .gitignore
  inflating: .mvn/wrapper/maven-wrapper.jar
  inflating: .mvn/wrapper/maven-wrapper.properties
  inflating: mvnw.cmd
  inflating: pom.xml
  inflating: src/main/java/com/example/demo/DemoApplication.java
  inflating: src/main/resources/application.properties
  inflating: src/test/java/com/example/demo/DemoApplicationTests.java

解压完成之后,使用Tree命令查看一下目录结构:

➜  SpringBoot tree ../SpringBoot
../SpringBoot
├── demo.zip
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── demo
    │   │               └── DemoApplication.java
    │   └── resources
    │       └── application.properties
    └── test
        └── java
            └── com
                └── example
                    └── demo
                        └── DemoApplicationTests.java

12 directories, 7 files

然后将构建好的项目导入到 IDEA或者 Eclipse中就好了。

Spring Boot - CLI:

使用Homebrew安装Spring Boot CLI:

示例代码:

➜  ~ brew --version # 查看Homebrew版本信息
Homebrew 1.3.1

➜  ~ brew tap pivotal/tap # 安装Pivotal的tap
==> Tapping pivotal/tap  ……

➜  ~ brew install springboot # 安装Spring Boot
==> Installing springboot from pivotal/tap
==> Downloading ……

➜  ~ spring --version # 查看版本
Spring CLI v1.5.6.RELEASE

pivotal/tap:Prvotal是Spring以及Spring Boot背后的公司,通过它的tap可以安装Spring Boot。tap是向Homebrew添加额外仓库的一种途径。

Spring Boot CLI:

$ spring init

这条命令会下载一个demo.zip 文件,与之前使用spring init构建的项目一样的结构。

$ spring init -dweb,jpa,security          # 使用-d或--dependencies来指定依赖

spring init命令一样,但是在pom.xml中添加了Spring Boot的Web,JPA,Security起步依赖。

$ spring init -dweb,jpa,security --build gradle      # --build 指定项目使用Grandle构建

使用Gradle来构建项目,默认情况下是使用Maven来构建的。

$ spring init -dweb,jpa,security --build gradle -p war # -p或者-packaging

默认情况下,无论是Maven或Gradle构建项目成功之后都会产生一个可执行的JAR文件,如果你需要一个war文件,可以通过-p 参数来指定。

$ spring init -dweb,jpa,security --build gradle  ~/Project/SpringBoot

这里的最后一个参数可以指定你的demo.zip文件的解压目录。如果你希望CLI生成的项目解压到当前目录,可以使用 —extract或者-x参数。

$ spring help

也可以使用 spring help来查看其他命令,并了解如何使用。

Spring Boot Maven Plugin:

在pom.xml中配置插件:

示例代码:

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

插件的指令详解:

➜ mvn spring-boot:help

显示spring-boot-maven-plugin的帮助信息。
调用mvn spring-boot:help -Ddetail = true -Dgoal = <goal-name>显示参数细节。

➜ mvn spring-boot:build-info

根据当前的内容生成一个build-info.properties文件,在你的Maven Project中。

➜ mvn spring-boot:repackage

重新包装现有的JAR和WAR存档,以便可以从中执行命令行使用java -jar。使用layout = NONE也可以简单地使用使用嵌套依赖关系打包一个JAR(没有主类,因此不可执行)。

➜ mvn spring-boot:run

运行基于Maven构建的Spring Boot应用程序。

➜ mvn spring-boot:start

启动Spring Boot应用程序。通常使用这个命令在应用程序在测试之前启动的集成测试场景中。

➜ mvn spring-boot:stop

  停止由“start”目标开始的应用程序。通常测试套件完成后调用。

参考资料: