什么是SpringBoot?
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
简单的说,spring boot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml配置然后进行配置。(想想之前spring,springmvc。。一推的的东西要配置。springboot简直不要太好)

创建SpringBoot项目
(一)File-New-Other创建maven项目:

(二)注意勾选create a simple project(skip archetype selection)//创建一个简单的项目跳过原型选择

(三)groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
Group Id :公司名称,groupId一般分为多个段,常用的为两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
Artifact Id : 项目的名称
Version:版本号,GroupId+ArtifactId+Packaging+Version构成项目的唯一标识。
Packaging:打包类型,jar/war/rar/ear/pom等,选择jar。
Compiler Level : 选择jdk版本

(四)点击finish,项目目录结构
Src/main/java。编写代码存放的目录。
Src/main/resources。资源文件存放目录。
Src/test/java。测试代码存放目录。

(五)配置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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
< 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 >cn.zjhuiwan</ groupId >
< artifactId >SpringBootDemo</ artifactId >
< version >0.0.1-SNAPSHOT</ version >
< parent >
<!-- 依赖管理,引入以后在声明其它dependency的时候就不需要version -->
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-parent</ artifactId >
< version >1.5.6.RELEASE</ version >
</ parent >
< dependencies >
<!-- 对web开发的支持,包含了spring webmvc和tomcat等web开发的特性 -->
< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-web</ artifactId >
</ dependency >
<!-- spring boot核心,包括自动配置支持,日志和YAML -->
< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter</ artifactId >
</ dependency >
< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-test</ artifactId >
</ dependency >
<!-- DevTools in Spring Boot 项目热部署 -->
< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-devtools</ artifactId >
</ dependency >
</ dependencies >
< build >
< plugins >
< plugin >
< artifactId >maven-compiler-plugin</ artifactId >
< configuration >
< source >1.8</ source >
< target >1.8</ target >
</ configuration >
</ plugin >
<!-- 如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。 -->
<!-- 如果使用maven的spring-boot:run的话就不需要此配置 -->
< plugin >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-maven-plugin</ artifactId >
</ plugin >
</ plugins >
</ build >
</ project >
|
注意:在配完后我的pom.xml中的parent位置报红x,是因为jar包下不下来。
解决办法是修改maven的settings.xml配置文件。注释mirror修改如下:
1
2
3
4
5
6
|
< mirror >
< id >mirrorId</ id >
< mirrorOf >central</ mirrorOf >
< name >Human Readable Name for this Mirror.</ name >
< url >http://central.maven.org/maven2/</ url >
</ mirror >
|
修改完保存,右击项目maven-update object。更新完jar包再把settings修改的还原。
(六)编写启动类:两种写法。
方法1:Application类+controller类 (注意Application类放到controller层)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 注解@SpringBootApplication指定项目为springboot,由此类当作程序入口,自动装配 web 依赖的环境;
*
* @author admin
*
*/
@SpringBootApplication
public class Application {
// 在main方法中启动一个应用,即:这个应用的入口
public static void main(String[] args) {
SpringApplication.run(Application. class , args);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
|
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // 是spring4里的新注解,是@ResponseBody和@Controller的缩写
public class SpringBootDemoController {
@RequestMapping ( "/hello" )
public String hello() {
return "HELLO SpringBoot! 这是一个springboot的demo" ;
}
}
|
@RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!
方法2:在controller层
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@SpringBootApplication // Spring Boot项目的核心注解,主要目的是开启自动配置
@Controller // 标明这是一个SpringMVC的Controller控制器
public class HelloApplication {
@RequestMapping ( "/hello" )
@ResponseBody
public String hello() {
return "hello world" ;
}
// 在main方法中启动一个应用,即:这个应用的入口
public static void main(String[] args) {
SpringApplication.run(HelloApplication. class , args);
}
}
|
(七) 启动:两种方法启动方法一样:右键run as ——spring boot app 执行main函数,成功启动如下:

浏览器访问

注意:访问不需要加项目名。如需加项目名需配置:后面再试。
SpringMVC的运行方式是将打成的war包放到tomcat中运行,这种情况下访问需要在url中加入项目名。SpringBoot同样可以打成war包部署,但也提供了另一种方式:直接执行public static void main()函数并启动一个内嵌的应用服务器(取决于类路径上的依赖是Tomcat还是jetty)来处理应用请求,这时是不需要添加项目名的。
总结:
使用spring boot可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用sping boot非常适合构建微服务。