Spring Boot - Introduction & QuickStart
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”目标开始的应用程序。通常测试套件完成后调用。