「这是我参与11月更文挑战的第21天,活动详情查看:2021最后一次更文挑战」
嗨,家人们,我是bug菌,我又来啦。今天我们来聊点什么咧,OK,接着为大家更springboot零基础入门系列文章吧。希望这个系列能对大家有用!
具有很好的教学价值,希望小伙伴们根据这篇文章可以有所收获,建议小伙伴们先收藏后阅读哦。
小伙伴们如果觉得文章不错,点赞、收藏、评论,分享走一起呀,记得给bug菌来个一键三连~~
好了,我们开始这期的正文吧。
一、前言
续上一篇咱们已经搭建好了一个springboot框架雏形。但是很多初学的小伙伴私信bug菌说,在开发项目中,为啥.yaml的配置文件也能配置,SpringBoot 是提供了两种2 种全局的配置文件嘛,这两种配置有何区别,能否给大家伙讲讲。一看这位小伙伴就非常好学啊,继续保持。
创建Spring Boot项目时,默认 resources 目录下就有一个application.properties 文件,可以在 application.properties 文件中进行项目配置,但是这个文件并非唯一的配置文件,
1、在 Spring Boot 中,一共有 4 个地方可以存放该配置文件,并按照如下**优先级依次降低**,如下:
- 当前项目根目录的config下
- 当前项目根目录下
- resource目录的config目录下
- resource目录下
2、SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。
- application.properties
- application.yml
application.properties:语法:key=value 或行内写法(k: v;[Set/List/数组];{map,对象类型的属性},并且[]可以省,但是{}不能省)。
比如上一篇提到的配置端口号:
#指定运行端口
server.port=8080
复制代码
application.yml : yaml ainot myarkup language ,不是一个标记文档。key: value
注意:yml默认可以不写引号,“”(双引号)会将其中的转义符进行转义,其他的(单引号啥的)不会。
二、application.properties使用
1、公共配置文件:application.properties(注意,此处取名别直接name,会跟系统默认的重名,所以;取名userName即可以示区分。)
user.userName=bug菌
user.sex=男
user.age=18
复制代码
然后通过@Value 注解将这些属性注入;
@Value("${user.userName}")
private String userName;
@Value("${user.sex}")
private String sex;
@Value("${user.age}")
private Integer age;
@GetMapping("/hello1")
public String index() {
return "我是"+userName+",性别:"+sex+",我今年"+age+"岁啦!";}
复制代码
或者创建一个user类;然后属性一一注入;
@Component
public class User {
@Value("${user.userName}")
private String userName;
@Value("${user.sex}")
private String sex;
@Value("${user.age}")
private Integer age;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
} public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
}
}
@Autowired
private User user;
@GetMapping("/hello2")
public String test() {
return "我是"+user.getName()+",性别:"+user.getSex()+",我今年"+user.getAge();
}
复制代码
然后分别访问一下;
http://localhost:8080/test/hello1
http://localhost:8080/test/hello2
ps:如果遇到打印出的中文乱码,如下所示,不要慌;bug菌教你怎么解决;好伐。
解决办法:应该是编辑器的问题,默认是GBK;你直接左上角File->Settings->File Encodings然后按如下设置即可。
以上就是application.properties配置文件的使用情况;另外有兴趣的同学还可以去试试八大类型的其他几种类型;bug菌此处就不一一赘述啦。提示:都跟上边是一样的玩法,唯独就是写法不太一样。
拓展:
#多行写法
student:
name: "Li Ming"
age: 18
#多行写法
person:
- man
- women
#单行的行内写法
person: [man,women]
复制代码
三、application.yaml使用
语法与.properties稍微不太一样;[key: value];
user:
userName: 刘亦菲
sex: 女
age: 20
复制代码
注意:yml默认可以不写引号,“”(双引号)会将其中的转义符进行转义,其他的(单引号啥的)不会。
测试一下:http://localhost:8080/test/hello1
使用yml需要注意一下几点:
- 不同“等级” 用冒号隔开
- 次等级的前面是空格,不能使用制表符(tab)
- 冒号之后如果有值,那么冒号和值之间至少有一个空格,避免紧贴
- 要么用application.properties 要么用 application.yml,不要都用使自己混乱
拓展:例如:对象写法+数组写法等复合型语法。感兴趣的同学可以尝试看看。
person:
name: zhangsan
age: 30
pets:
-dog
-cat
-pig
car:
name: QQ
child:
name: zhangxiaosan
age: 2
复制代码
四、两种配置文件如何选择
1、当properties和yml同时存在时,properties的优先级会比yml高(记忆技巧:这个世界上,谁长,谁NB)。
2、两种文件都是用#注释。
3、yml的优点在于可以省去一下重复代码。
4、在properties文件里面的 “ .” 连接在yml文件里面全部换成 ":" 进行连接,并且每一级之间必须换行,在第二级开始应该进行一个Tab键的缩进,如果是同级的就不需要进行缩进。
5、在yml文件里面如果是需要进行赋值那么必须是要在 ":" 后面进行一个空格键的缩进。
6、在yml文件里面所有的配置,相同级别只能出现一次,比如我们使用了spring这个级别,那么我们在后边进行spring级别的配置的时候就必须在这个地方进行,不能在写一个spring级别。
... ...
至于如何选择,想必你们心中都有答案了吧!
五、热文推荐
========================================================
springboot<一>:零基础入门springboot及idea搭建
========================================================
OK,今天的文章先写到这。如果问题还请批评指正。
❤如果文章对您有所帮助,就请在文章末尾的左下角把大拇指点亮吧!(#^.^#);
❤如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;
❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】;
❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);
❤版权声明:本文为博主原创文章,转载请附上原文出处链接和本文声明,版权所有,盗版必究!(*^▽^*)