1.什么是SpringBoot
SpringBoot是基于Spring得一套脚手架,传统得jiavaweb项目都是使用SSM框架,虽然极大得简化了开发,但是创建项目中繁琐得配置让开发人家称为配置地狱。
Spring Boot 以约定大于配置的核心思想,默认配置了很多设置,做到了开箱即用得脚手架框架。
1.2 微服务简介
微服务架构是一种新的架构风格,相比较传统的ALL in one得架构,这种架构更加得简单,用很小得资源将一个个功能单独得独立出来,Springboot就很好得契合了微服务得架构思想,可以独立运行,节省调用资源,使得程序做到高内聚,低耦合。
2. 第一个Springboot程序
2.1使用IDEA工具模板自动创建一个微服务项目
通常我们都是创建一个Maven项目,然后导入依赖,其实我们实际开发也是这样,但是练习得时候可以使用IDEA工具模板快速新建一个项目,记住pom文件内容,这样下次就可以直接复制pom文件得依赖直接用maven构建了。
你发任你发,我用java8,哈哈
这样我们就快速新建了一个springboot项目。
2.2 pom文件
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.liu</groupId>
<artifactId>hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>hello</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
以为是为我们自动生成得依赖,我们可以看出我们不需要做任何得配置和依赖导入就完成了一个javaweb得项目。
2.3 新建 Controller 测试
package com.liu.hello.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloConller {
@RequestMapping("hello")
public String hello(){
return "hello";
}
}
运行帮我们自动生成得HelloApplication启动类,访问localhost:8080/hello
3.配置详细
以上我们看出我们没有做任何得配置,只是自动生成得依赖和启动类,我们新增一个controller类加上RequestMapping注解即可实现一个接口。
这就是自动装配,我们可以自己定义一些配置代替帮我们自动配置得内容。
3.1启动banner
我们启动控制台打印得内容可以通过我们自己预设定,这个网上有很大得文件。
Spring Boot自定义启动Banner在线生成工具
我们在resouce新增banner.txt
.::::.
.::::::::.
:::::::::::
':::::::::::..
:::::::::::::::'
':::::::::::.
.::::::::::::::'
.:::::::::::...
::::::::::::::''
.:::. '::::::::''::::
.::::::::. ':::::' '::::
.::::':::::::. ::::: '::::.
.:::::' ':::::::::. ::::: ':::.
.:::::' ':::::::::.::::: '::.
.::::'' ':::::::::::::: '::.
.::'' ':::::::::::: :::...
..:::: ':::::::::' .:' ''''
..''''':' ':::::.'
这样我们重启
控制台打印得就是我们预设的得内容了。
3.2 application.yaml
之前我们配置文件都是application.properties,官方更推荐我们使用yaml得格式。
properties格式
server.port=8081
yaml得格式
server:
port: 8081
需要注意的是我们:后面有个空格,yml对空格及其敏感。
我们对server的端口重新设置,这样默认的8080就会变成我们指定的8081.
3.3多环境切换
我们对于很多配置都是在生产环境和测试环境配置不同,对于多环境配置我们可以用profiles切换
#选择要激活那个环境块
spring:
profiles:
active: prod
---
server:
port: 8081
spring:
profiles: dev #配置环境的名称
---
server:
port: 8082
spring:
profiles: prod #配置环境的名称