前言
🌟🌟本期讲解关于Spring IOC&DI的详细介绍~~~
🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客
**🔥 你的点赞就是小编不断更新的最大动力 **
🎆那么废话不多说直接开整吧~~
📚️1.配置文件的作用
计算机上有数以千计的配置⽂件, 我们使⽤的绝⼤多数软件, ⽐如浏览器, 微信, Idea, 甚⾄电脑, ⼿机, 都离不开配置⽂件. 我们可能永远不会直接与其中的⼤部分⽂件打交道,但它们确实以不同的形式散落在我们的计算机上, ⽐如C:\Users, C:\Windows⽂件夹, 以及各种 *.config, *.xml ⽂件
配置文件:
配置⽂件主要是为了解决硬编码带来的问题, 把可能会发⽣改变的信息, 放在⼀个集中的地⽅, 当我们启动某个程序时, 应⽤程序从配置⽂件中读取数据, 并加载运⾏
其实,可以发现配置配置,可以想象成我们使用idea之前要进行环境的配置,其实我们在使用idea时,并没有和这些文件打交道,但是这些环境的配置在我们使用idea时默默的发挥作用;
1.1Spring Boot配置文件
SpringBoot⽀持并定义了配置⽂件的格式, 也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的⽬的.
很多项⽬或者框架的配置信息也放在配置⽂件中, ⽐如:
• 项⽬的启动端⼝
• 数据库的连接信息(包含⽤⼾名和密码的设置)
• 第三⽅系统的调⽤密钥等信息
• ⽤于发现和定位问题的普通⽇志和异常⽇志等.
项目的启动端口,由于springboot内置了Tomcat的服务器,默认的端口是8080,但是如果8080端口被占用后,就要重新配置这里的服务器端口;
📚️2.配置文件的快速入手
在idea中springboot项目中就存在这里的配置文件的操作项目:
注意:这里默认的就是properties,小编这里就是yml,后面小编会讲到
接下来我们直接改变这里的服务器端口号为:9090
代码如下:
server.port=9090
这里的意思就是:此时的端口号为9090,此时我们就直接访问进行验证;
访问的URL就是:http://127.0.0.1:8080/login.html;
可以看到此时就是无法进行8080端口服务器的访问了,那么此时我们将8080改成为9090,此时的界面如下:
可以看到此时就是拿到了我们这里的界面,可以发现此时配置文件就可以改变程序的某些配置,例如端口号,以及其他的对象这类的,后面有讲;
📚️3.配置文件的格式
Spring Boot 配置⽂件有以下三种:
• application.properties
• application.yml
• application.yaml
解释:yml 为yaml的简写, 实际开发中出现频率最⾼. yaml 和yml 的使⽤⽅式⼀样, 这里只讲yml⽂件的使⽤
当应⽤程序启动时, Spring Boot会⾃动从classpath路径找到并加载application.properties 和 application.yaml 或者 application.yml 文件
以下就是两种配置文件的格式项目文件
注意:
- 理论上讲 .properties 和 .yml 可以并存在于⼀个项⽬中,当 .properties 和 .yml并存时,两个配置都会加载. 如果配置⽂件内容有冲突, 则以 .properties 为主, 也就是.properties 优先级更⾼.
- 虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种
统⼀的配置⽂件格式,这样可以更好的维护(降低故障率
当然实践出真知,此时约定两者的服务器端口号:
//application.properties
server.port=8080
//application.yml
server:
port: 9090
那么此时我们访问9090,可以发现此时的结果如下:
哦豁,此时又是不可以进行访问了,那么接下来就是使用8080来进行操作,毋庸置疑这里的8080端口的服务器是可以与浏览器进行连接的,小编就不再进行演示了;
📚️4.properties 配置⽂件说明
4.1properties的基本语法
properties 是以键值的形式配置的,key 和 value 之间是以"="连接的,如:
# 配置项⽬端⼝号
server.port=8080
#配置数据库连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?
characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
可以发现,每个单词的连接就是“ . ”,然后key与value之间的连接就是“ = ”;
4.2配置文件的读取
这里我们可以在代码中读取到配置文件;可以使⽤ @Value 注解来实现。@Value 注解使⽤" ${} "的格式读取;
代码如下:
此时我们设置一个需要重配置文件中拿到的数据:
server.port=8080
school.study.id=1207
此时就是我们所规定的配置文件(这里的配置文件是自己定义的),我们就可以拿到这里的自己配置的文件的数据了;
@RestController
@RequestMapping("/test")
public class test {
@Value("${school.study.id}")
Integer num;
@RequestMapping("id")
public String getNum(){
return "拿到的值"+num;
}
}
此时就是通过value拿到这里的值,然后进行返回,进行浏览器显示:
4.3properties的缺点
properties 配置是以 key-value 的形式配置的,如下图所⽰:
缺点:
从上述配置key看出,properties 配置⽂件中会有很多的冗余的信息
📚️5.yml配置文件说明
yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔.
我们先来学习yml的语法
5.1yml基础语法
yml 是树形结构的配置⽂件,它的基础语法是"key: value".key 和 value 之间使⽤英⽂冒号加空格的⽅式组成,空格不可省略基础语法如下:
spring:
application:
name: Spring-book
server:
port: 9090
student:
name: lisi
id: 0829
age: 19
那么这里进行数据库的连接如下所示:
spring:
datasource:
url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8&useSSL=false
username: root
password: root
5.2yml配置文件的读取
5.2.1配置不同类型的数据
在yml中配置不同类型的数据的具体格式如下所示:
# 字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
# 浮点数
float.value: 3.14159
# Null,~代表null
null.value: ~
# "" 空字符串
#, 直接后⾯什么都不加就可以了, 但这种⽅式不直观, 更多的表⽰是使⽤引号括起来
empty.value:''
注意:空字符串后面啥都不用加,此时这里加上' '主要是为了方便我们这里进项观察
5.2.2配置对象的读取
这里和上面一样,在读取数据的时候需要的就是@value注解进行操作,但是这是只是一种情况,引用的方式和上面properties的方式一致,这里小编就不再进行演示了,那么对象的获取就是另一种注解:@ConfigurationProperties
这里的yml配置文件的代码如下所示:
student:
name: lisi
id: 0829
age: 19
那么我们如何获取到配置文件中的数据呢?
具体的代码如下所示:
@ConfigurationProperties(prefix = "student")
@Component
@Data
public class StudentInfo {
private String name;
private int id;
private int age;
}
注意:
这里小编的使用了lombok依赖中的@data,来自动实现get与set,tostring等等的重写;
使用component将这里的对象交给spring进行管理
最后使用@ConfigurationProperties来进行配置文件中对象的获取;
最后演示代码如下:
@RestController
@RequestMapping("/test")
public class test{
@Autowired
private StudentInfo studentInfo;
@RequestMapping("/student")
public String getStudent(){
return "获取到的对象值:"+studentInfo;
}
}
解释:这里就是通过Autowired来进行对象的引入的操作的;最后使用路由映射来进行对象的打印的操作;
最终的效果如下所示:
此时我们可以发现已经拿到了这里的对象里各个属性的值;
5.2.3配置列表的读取
这里的yml的配置文件的代码如下所示:
dbtypes:
name:
- hello
- java
- nihao
注意:在每个列表的成员描述中“ - ”与每个值之间必须存在空格;
那么此时我们的代码如下所示:
@Component
@Data
@ConfigurationProperties("dbtypes")
public class DbtypesInfo {
private List<String> name;
}
解释:
@Data负责重写,列表的名称要和yml配置文件的一致
@component负责将这个对象交给spring管理
@configurationProperties负责获取到配置文件中列表的值
那么展示的代码如下:
@Autowired
private DbtypesInfo dbtypes;
@RequestMapping("/dbtypes")
public String getDbtypes(){
return "获取到的列表值:"+ dbtypes.toString();
}
解释:这里就是通过Autowired来进行对象的引入的操作的;最后使用路由映射来进行对象的打印的操作;
最后的结果如下:
5.2.4配置Map的读取
配置文件yml的写法如下:
maptypes:
map:
string1: zhangsan
string2: lisi
string3: wangwu
这里就是map的配置文件的写法
那么接下来就是获取这里的配置文件:
@Data
@Component
@ConfigurationProperties("maptypes")
public class MapInfo {
private Map<String,String> map;
}
解释:
Data负责重写,map的名称要和yml配置文件的一致
@component负责将这个对象交给spring管理
@configurationProperties负责获取到配置文件中map的值
此时展示的代码如下:
@Autowired
private MapInfo mapInfo;
@RequestMapping("maptypes")
public String getMaptype(){
return "获取到的map:"+ mapInfo.toString();
}
最终的结果展示就是如下:
5.3yml的优缺点
优点:
可读性⾼,写法简单, 易于理解
⽀持更多的数据类型, 可以简单表达对象, 数组, List,Map等数据形态
⽀持更多的编程语⾔, 不⽌是Java中可以使⽤, 在Golang, Python, Ruby, JavaScript中也可以使⽤
缺点:
不适合写复杂的配置⽂件
有比较严格的格式要求,例如对于空格这个是必不可少的
📚️6.总结
本期小编主要讲解了关于Spring Boot的配置文件,如何进行快速入手,以及配置文件的格式是哪几种,关于properties格式的配置文件和yml格式的配置文件都做了比较详细的分析;
🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!!
💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。
** 😊😊 * 期待你的关注~~~***
版权归原作者 GGBondlctrl 所有, 如有侵权,请联系我们删除。