SpringBoot -01 SpringBoot入门(初始化配置+SpringBoot项目构建三种方式+热部署+配置详解)
SpringBoot入门-SpringBoot -01 SpringBoot入门(初始化配置+SpringBoot项目构建三种方式+热部署+配置详解)
1 SpringBoot引用
1.1 初始化配置
为了使用SSM框架去开发,需要准备SSM框架的配置。
1.2 依赖版本
在SSM开发中,我们需要导入大量的依赖,需要关心依赖之间的版本冲突问题
1.3 整合第三方框架
为了Spring整合第三方框架,单独的去编写xml文件。
1.4 后期维护
后期SSM项目后期xml文件特别多,维护xml文件的成本是很高的
1.5 部署工程
SSM工程部署也是很麻烦,依赖第三方的容器(Tomcat等)
2 SpringBoot简介
2.1 概述
SpringBoot是由Pivotal团队研发的,SpringBoot并不是一门新技术,只是将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。
SpringBoot就是一个工具集。
官网:https://spring.io/projects/spring-boot/
2.2 特点
SpringBoot特点:
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
- 创建独立的 Spring 应用程序
- 直接嵌入Tomcat、Jetty或Undertow(无需部署WAR文件)
- 提供自以为是的“入门”依赖项以简化您的构建配置
- 尽可能自动配置 Spring 和 3rd 方库
- 提供生产就绪功能,例如指标、运行状况检查和外部化配置
- 完全不需要代码生成,也不需要 XML 配置
3 SpringBoot入门
3.1 快速的构建SpringBoot
3.1.1 选择构建项目的类型
选择构建项目的类型
spring Initializr
如果这里通过在线方式创建失败可以选择使用自定义的方式构建
http://start.aliyun.com/
3.1.2 项目的信息(坐标 描述)
Group: 项目坐标 com.ying
Java Version :jdk版本
Name:项目名称自定义
3.1.3 指定SpringBoot版本和需要的依赖
版本选择2.7.10
一般项目勾选 Web
3.1.4 SpringBoot 项目依赖
springboot项目父工程
spring-boot-starter-parent
web项目项目起步依赖
spring-boot-starter-web
<!-- springboot项目父工程 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- web项目项目起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.1.5 编写Controller控制器
@RestController
public class TestController {
@RequestMapping("test")
public String test(){
return "Hello,SpringBoot";
}
}
3.1.6 测试
http://localhost:8080/test
3.2 SpringBoot的目录结构
3.2.1 pom文件
- 指定了一个父工程: 指定当前工程为SpringBoot,帮助我们声明了starter依赖的版本。
- 项目的元数据:包名,项目名,版本号。
- 指定了properties信息:指定了java的版本为1.8
- 导入依赖:默认情况导入spring-boot-starter,spring-boot-starter-test
- 插件:spring-boot-maven-plugin
3.2.2 .gitignore文件
默认帮我们忽略了一些文件和目录,避免提交到Git仓库中
3.2.3 src目录结构
Springboot01Application
SpringBoot项目启动引导类
- 当启动引导类执行的时候,自动装配。会自动配置Spring、SpringMVC等项目的配置(导入的场景依赖)
- static:存放静态资源,html,css,js,imag… 直接访问路径 不需要加static
- templates:存放模版引擎,后端技术,一般都是jsp
application.properties
/application.yml
springboot核心配置文件
3.3 SpringBoot项目启动方式
3.3.1 运行启动类的main方法
运行main方法即可
3.3.2 maven命令
mvn spring-boot:run
3.3.3 采用jar包的方式运行
将当前项目打包成一个jar文件,并通过
java -jar jar 文件名称
windows中:start javaw -jar springboot02-0.0.1-SNAPSHOT.jar
后台运行
start javaw -jar 文件名称
停止运行
taskkill -f -t -im javaw.exe
3.4 SpringBoot项目的其他构建方式
3.4.1 在线生成SpringBoot项目
https://start.spring.io/
将下载的项目导入到IDEA中即可
3.4.2 创建普通maven工程构建
3.4.2.1 创建maven工程
3.4.2.2 修改pom文件
继承spring-boot-starter-parent
添加web起步依赖
<?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 http://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.5.4</version>
</parent>
<groupId>com.qf</groupId>
<artifactId>springboot-03</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- 添加web起步依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
3.4.2.2 创建启动类
@SpringBootApplication
public class SprintBoot03Application {
public static void main(String[] args) {
SpringApplication.run(SprintBoot03Application.class);
}
}
3.5 自定义Banner图
默认情况下:SpringBoot 会读取配置项
banner.txt
和banner.location
,从配置项中获取真实的文件地址如果没有配置那么会显示默认的banner效果
3.5.1 创建banner.txt文件
将文件放入到resources目录下
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕机 永无BUG //
在线生成banner图:https://www.bootschool.net/ascii
3.6 SpringBoot热部署
3.6.1 导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
3.6.2 settings配置
Build–Execution–Deployment–Compiler–
勾选 build project automatically
3.6.3 勾选自动部署运行
ctrl + shift + alt + / > Registry > 勾选Compiler autoMake allow when app running
3.6.4 修改IDEA自动更新资源
3.6.5 重新构建工程
这一步无需配置,如果反应时间过长,可以重构一下工程即可
4 SpringBoot 配置讲解
SpringBoot是约定大于配置的,所以很多配置都有默认值。如果想修改默认配置,可以用
application.properties
或application.yml
或者application.yaml
完成自定义配置。SpringBoot默认从resource目录加载自定义配置文件。
4.1 springboot默认配置
https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties
4.2 properties修改默认配置
格式:properties文件的配置以
key.key.key:value
的形式组成
#修改tomcat端口 默认:8080
server.port=9999
#修改项目访问路径 默认:/
server.servlet.context-path=/test
#修改视图解析器前缀后缀
spring.mvc.view.prefix=/pages/
spring.mvc.view.suffix=.html
4.3 yml、yaml修改默认配置
较多使用格式:
- 大小写敏感
- 数据值前必须有空格,作为分隔符
- 缩进的空格数目不重要,只需要对齐即可
#
表示注释
#修改tomcat端口 默认:8080
server:
port: 9999
#修改项目访问路径 默认:/
servlet:
context-path: /springboot02
spring:
mvc:
view:
#修改视图解析器前缀后缀
prefix: /pages/
suffix: .html
如果同时编写两个配置文件(properties优先级高于yml 配置文件)
一般不这么干
4.4 多环境配置
在实际开发过程中,会有不同的环境, 如果不停地更换配置那将会很麻烦
springboot支持多环境配置。常见的多环境配置
dev\test\pro
application.yml(主)
- application-dev.yml(开发环境配置)
- application-test.yml(测试环境配置)
- application-pro.yml(生产环境配置)
application.yml
spring:
profiles:
#指定使用哪个环境
active: test
application-dev.yml
server:
port: 8081
application-test.yml
server:
port: 8082
application-pro.yml
server:
port: 8083
如果配置信息不多,那么也可以写在一个配置文件中
spring:
profiles:
#指定使用哪个环境
active: test
---
#开发环境
server:
port: 8081
spring:
profiles:
dev
---
#测试环境
server:
port: 8082
spring:
profiles:
test
---
#生产环境
server:
port: 8083
spring:
profiles:
pro
4.4.1 激活profiles
第一种方式:即主配置文件中的配置
第二种方式:
java -jar xxx.jar --spring.profiles.active=test
(优先级更高)
- java -jar springboot02-0.0.1-SNAPSHOT.jar --spring.profiles.active=test
第三种方式:通过JVM虚拟机参数配置
-Dspring.profiles.active=test