Spring Boot入门(一)

1、Spring Boot 简介

  • 简化spring应用开发得一个框架;
  • 整个Spring技术栈得一个大整合;
  • J2EE开发的一站式解决方案;

2、微服务

2014、Martin fowler
微服务:构架风格
一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;

单体应用:ALL IN ONE;

  • Simple to:develop,test,deploy,scale
    每一个功能元素最终都是一个可独立替换和独立升级的软件单元
    环境约束:
  • jdk1.8 :Spring Boot 1.7以上;
  • maven3.x :maven3.3以上;
  • intellIjIDEA2017 :STS
  • Spring Boot RELEASE:

3、统一环境:

1.maven设置

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
<localRepository>D:\ideaall\libmaven</localRepository>//大概50行

<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>//大概150行


<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.comilerVersion>1.8</maven.compiler.comilerVersion>
</properties>
</profile>//大概200行

2.IDEA设置

  • setting中maven设置setting.xml和仓库位置

4.Spring Boot Hello World

1.(首选)创建一个maven工程(jar)(md IDEA的Spring Initializr要搞我,以后再也不用了)(开启auto import maven)

2.导入依赖spring boot相关的依赖

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
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.springframework</groupId>
<artifactId>gs-rest-service</artifactId>
<version>0.1.0</version>

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

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<properties>
<java.version>1.8</java.version>
</properties>


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

</project>

3.编写一个主程序,在【cn.XXX.XXX】包下新建一个【HelloWorldApplication】

项目结构:

  • HelloWorldApplication: 一个带有 main() 方法的类,用于启动应用程序
  • HelloWorldApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
  • application.properties:一个空的 properties 文件,可以根据需要添加配置属性
  • pom.xml: Maven 构建说明文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package cn.XXX.XXX;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/***
*@SpringBootApplication 来标注一个主程序类,说明这是一个SpringBoot应用
***/
@SpringBootApplication
public class HelloWorldApplication {
//Spring应用启动起来
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}
}

4.在【cn.XXX.XXX】包下新建一个【HelloController】(编写相关Controller,Service)

1
2
3
4
5
6
7
8
9
10
11
12
13
package cn.XXX.XXX;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello() {
return "Hello Spring Boot!";
}
}
  • @RestController 注解: 该注解是 @Controller 和 @ResponseBody 注解的合体版

4.利用 IDEA 启动 Spring Boot

我们回到 SpringbootApplication 这个类中,然后右键点击运行
可以看到我们的 Tomcat 运行在 8080 端口,我们来访问 “127.0.0.1:8080/hello” 地址试一下

5.简化部署

pom.xml增加插件
右侧maven的package可以打成jar包(targe目录下)直接运行(Java -jar)

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>