第一章 spring boot 简单服务的搭建
让我们从搭建一个最最简单的spring boot工程,开启我们的spring boot之旅。我们可以通过spring提供的搭建脚手架的网站(https://start.spring.io/)生成最基础的spring boot的工程框架,当然也可以通过各GUI工具来大家spring boot脚手架。下图是spring boot脚手架网站,用来生成spring boot工程的配置界面,大家可根据自己的实际情况进行配置。

第一节 环境介绍
开发工具 | JDK版本 | Spring Boot版本 | 项目依赖 | 测试工具 | 备注 |
IntelliJ IDEA 2020.1.2 | Java 14 | 2.3.1.RELEASE | lombok | Apifox | 这些都是最基础的工具和环境 |
第二节 spring boot脚手架导入
2.1 通过idea的【File】菜单中的【Open …】,如下图:

2.2 选择脚手架工程文件夹后,点击【OK】按钮

2.3 等待idea把脚手架工程加载完毕即可
第三节 配置application.yml文件
3.1 在resource文件夹中创建application.yml文件,内容如下:
# 当前应用端口
service:
port: 8080
# spring yml环境配置文件
spring:
profiles:
active: dev3.2 在resource文件夹中创建application-dev.yml文件,内容如下:
# 开发配置
spring:
# 当前环境
environment: multi-dev
# 当前工程名称
application:
name: simple-service第四节 码农出发
4.1 码出spring boot服务的启动类
无论什么语言的什么程序的启动都需要一个入口(通常是:main方法),那么spring boot服务也是有启动入口的;包路径:com.jwssw.simple,类名称:SimpleApplication,所需要的注解:@SpringBootApplication和@Slf4j。
代码如下:
package com.jwssw.simple;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* simple service 启动类
*
* @author <a href="mailTo:luhaopeng2005@126.com">Luhaopeng</a>
* @version 1.0
* @date 2020/7/5 17:25
* @since JDK 11
*/
@Slf4j
@SpringBootApplication
public class SimpleApplication {
/**
* simple service 启动入口
*
* @param args 参数集
*/
public static void main(String[] args) {
SpringApplication.run(SimpleApplication.class, args);
log.info("本应用已启动");
}
}说明:
@SpringBootApplication: 主要在类上进行注释,通常在启动类上进行注释;该注解是个组合注解,包括:@ComponentScan、@SpringBootConfiguration和@EnableAutoConfiguration注解。
@Slf4j: 主要在类上进行注释,为被注解的类提供一个属性名称为“log”的log4j日志对象。
4.2 码出yml配置文件类
有时候我们想在代码里使用yml文件中的信息,通过本类读取并自动封装实体类后可以在工程代码中使用了。配置能够读取当前工程的yml配置类,包路径:com.jwssw.simple.config,类名称:MultiEnvironmentConfig,所需要的注释:@Data、@Component和@ConfigurationProperties。
代码如下:
package com.jwssw.simple.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
/**
* @author <a href="mailTo:luhaopeng2005@126.com">Luhaopeng</a>
* @version 1.0
* @date 2020/7/5 17:59
* @since JDK 1.8
*/
@Data
@Component
@ConfigurationProperties(prefix = "spring")
public class MultiEnvironmentConfig {
private String environment;
}说明:
@Data: 主要在类上进行注释,被注释的类中的属性可以不用再明文写出属性的setter和getter方法;除此之外,还提供了equals、canEqual、hasCode、toString方法的实现。在工程打包成jar文件或者war文件时在该类的class文件上才体现出对应方法的代码部分。
@Component: 主要在类上进行注解,其作用把当前类当做POJO在spring容器中进行实例化,在其他地方可直接通过@Autowired注解定义并引用该类的实例化对象。
@ConfigurationProperties: 主要在类上进行注释,其作用是把配置文件中的信息自动封装成实体类,如果需要使用指定的配置信息,可以使用【prefix】属性指定。
4.3 码出SimpleController类
码出测试使用的Simplecontroller类,包路径:com.jwssw.simple.controller,类名称:SimpleController,所需要的注释:@RestController和@RequestMapping。
代码如下:
package com.jwssw.simple.controller;
import com.jwssw.simple.config.MultiEnvironmentConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 简单服务 控制类
*
* @author <a href="mailTo:luhaopeng2005@126.com">Luhaopeng</a>
* @version 1.0
* @date 2020/7/5 18:00
* @since JDK 1.8
*/
@RestController
@RequestMapping("/simple")
public class SimpleController {
/**
* 多环境配置类
*/
@Autowired
private MultiEnvironmentConfig config;
/**
* 获取当前环境
*
* @return 当前环境
*/
@GetMapping("/getEnvironment")
public String getEnvironment() {
return "{\"environment\": \"" + config.getEnvironment() + "\"}";
}
}说明:
@RestController: 主要注释在controller类上,其作用就是@Controller和@ResponseBody两个注释的组合。如果前后台通过api接口的方式进行数据传输,就需要使用该注解了;如果一般应用有返回界面的应用场景下使用@Controller注解。
@RequestMapping: 该注解即可作用在Controller类上,也可以作用在Controller类的方法上;其作用是处理请求地址映射的注解。
@Autowired: 主要注释在类成员变量、方法和构造函数上,让spring完成bean自动装配的工作。
@GetMapping: 主要注释在Controller类中的方法上,其作用主要是讲Http Get请求映射到被注解的方法上;其实该注解是缩写注解,原注解是:@RequestMapping(method = RequestMethod.GET)。
第六节 使用apifox进行接口测试

说明:
①: 可以创建新的测试接口
②: 可选择测试的服务器信息
③: 可以配置测试的API地址
④: 点击【发送】进行接口测试
第七节 总结
看似简单的不起眼的工程,其实所涵盖的内容也是挺全乎的。我们在学习技术的时候不是学会用就可以了,我们要做到知其然知其所以然。加油吧少年!!!
第八节 源码地址
GitHub源码地址: https://gitee.com/jwssw/jwssw-blog/tree/master/simple-service
















