SpringBoot的高级用法
1.配置文件的说明
1.1 pom.xml文件的说明
1.1.1parent标签的解析
SpringBoot的定位:主要是整合SSM,使得框架使用更加简洁
parent的主要作用:
1、SpringBoot在内部兼容了几乎所有的第三方框架
2、SpringBoot官网已经将所有的兼容的版本进行了定义(几乎解决了版本冲突的问题),以后不用用户自己写版本号
3、 概括:parent标签中定义了其他标签的项目版本信息
1.1.2、项目maven的基本信息
坐标1:组ID 公司域名倒写
2:项目名称 不能重复 不能数字开头
3:项目版本
坐标的意义:
1、主要用于管理/区分项目
2、项目的打包的路径就是坐标的位置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
1.1.3、dependency解析
原则:按需导入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter
SpringBoot的启动项,在包的内部springboot已经完成了所有项目的“整合”(配置)–开箱即用,用户直接拿来用
web导入了springmvc
1.1.4、热部署
只对开发阶段(码农编码环节)起作用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
1.1.5 lambok
引入插件lombok 自动的set/get/构造方法插件
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
1.1.6 springboot项目与Maven整合的一个插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
作用:可以通过插件 执行项目打包/测试/文档生成等操作
注意: 该插件不能被省略
如果省略启动时就会被报错:
利用命令启动发布项目:java -jar ***.jar 报错:没有主清单信息!!
1.1.7 maven命令
1、clean清空已经编译之后的文件class(位于target目录中)
2、install 将项目中的target中的class文件打包 xxx.jar包
install会将测试类中的class文件也打包
3、跳过测试类文件的打包
<properties>
<java.version>1.8</java.version>
<!--跳过测试类打包-->
<skipTests>true</skipTests>
</properties>
1.2 application.yml语法说明
数据结构:K-V
数据类型:String/Number类型
server:
port: 8091
语法: 1、key:(空格)value
2、key于value之间有层级关系,注意缩进
3、字符编码格式:utf-8
4、可读性properties文件更加便捷
概述:YML是Spring的核心配置文件:用来整合其他第三方框架,大量数据放在yml中不符合
1.3 application.properties语法说明
数据结构:K-V
数据类型:String/Number类型
语法: 1、id=100
name=tomcat
注意不要写成:name=“tomcat” ❌ 分析;因为此时tomcat本身就是一个字符串,不需要多余的引号
2、k-v使用=号连接
3、properties文件在IDEA中的编码格式是utf-8
4、properties文件在被读取时默认是ISO-8859-1格式,中文必定是乱码
5、k-v不要出现空格
2 SpringMVC Controller层注解
2.1 @RestControlle=@ResponseBody+@Controller
作用:1、响应用户发起的请求
2、响应用户的JSON串
3、@ResponseBody可以将对象转换为JSON串
4、如果返回值为String类型,则返回本身
2.2 注解赋值
2.2.1 方法一、在spring核心配置文件中存储属性配置信息
#添加业务数据 Spring则管理维护数据
public class HelloController {
//从spring容器内部为属性赋值
//语法:spel表达式
@Value("${User.day}")
private String day;
@RequestMapping("test2")
public String test2(){
return "这个雨下"+day;
}
application.yml文件:
User:
day: 1天
2.2.2方法二、创建properties配置文件
使用方法:在spring容器启动时动态添加配置文件(一般需要修改字符集)
@PropertySource(value="classpath:/person.properties",encoding ="utf-8")
@RestController
@RequestMapping("/run/")
public class HelloController {
@Value("${person.name}")
private String name;
@RequestMapping("test3")
public String test3(){
return "名字是"+name;
}
}
自己创建命名person.properties文件:
person.name=王狗蛋
2.2.3概述:
关于注解赋值:
1、必须满足k-v
2、若属性只有一个并且是value属性,则可以省略不写
@Value(value="${User.day}")//此处value可省略
private String day;
3、如果是乱码,检查IDEA的字符集是否是utf-8
为属性赋值的意义:
1、实现了.java文件与属性赋值的解耦
2、为了实现特定的业务的赋值
3、springboot在整合其他框架时,需要额外配置文件时,常常采用上述操作来实现
2 Spring自动装配过程
2.1Spring“容器”
说明:Spring容器是内存中一大块区域
数据结构:K-V结构
数据类型:Map集合
Map详细说明:Key:类型首字母的小写
Value: 对象
2.2依赖注入的原理
1、按照类型注入
2、按照名称注入