认识 springboot 之 它的配置文件 -2


前言

本篇了解springboot中配置的作用,介绍配置文件的种类,介绍简单使用配置文件,简单的小技巧如何设置注释,开启热部署等等,如有错误,请在评论区指正,让我们一起交流,共同进步!


文章目录

  • 前言
  • 1.配置文件是什么?
  • [2. 两种配置文件的格式](#2. 两种配置文件的格式)
    • [2.1 application.properties - 新手推荐使用](#2.1 application.properties - 新手推荐使用)
    • [2.2 application.yml / application.yaml](#2.2 application.yml / application.yaml)
  • [3. 配置文件中使用的注释](#3. 配置文件中使用的注释)
  • [4. springboot开启热部署](#4. springboot开启热部署)
  • [5. 在不同环境中设置配置文件](#5. 在不同环境中设置配置文件)
  • 总结

本文开始

1.配置文件是什么?

配置文件的作用:配置项目中所有重要的数据,例如数据库连接信息,启动端口等等;

  • 配置文件中配置类型的分类:
    a)系统配置项 ex : server.port ; - 给系统/框架使用
    b)用户自定义配置 ex : my_image.path;- 开发者使用
  • 读取配置项:通过注释@Value() + 注释参数为 " {} " =》例如:@Value("{my_image.path}") =》再设置一个属性myImage 就会存放到该属性中;

2. 两种配置文件的格式

2.1 application.properties - 新手推荐使用

格式 :键值形式 kay=value

例如:server.port=8081

注释特点:默认字符集不是UTF-8, 写注释会乱码;解决方式在下面,设置一下就行了;

优点:配置文件结构清晰:都是key=value

.properties 与 .yml 同时出现,系统默认识别.properties

缺点:相同的配置名称不能省略

.properties配置数据库信息示例:

读取配置文件:

  • xxx.properties读取属性:通过注释@Value(): @Value("${属性名}")

2.2 application.yml / application.yaml

格式 :树形形式 kay: value - 分层级

注释特点:默认字符集是UTF-8, 写注释不会乱码;

例如:注意 值 与 冒号 之间有空格;注意缩进关系;

java 复制代码
# 下列分层级 相当于 server.port=8082
server: 
  port: 8082

优点:写法简单, 支持多编程语言;

.yml配置数据库信息示例:

读取配置文件

  • xxx.yml 读取属性:通过注释@Value(): @Value("${属性名}")
  • yml中读取对象的方式:
    使用注解:@ConfigurationProperties()
    【注】读取对象的注释与五大类注释一起使用;
    读取yml配置文件中的对象,先创建一个与对象对应的类;类中的属性与yml配置文件的属性一一对应;且创建的类中必须包含get,set方法;
java 复制代码
//配置文件中内容
student:
  id: 1
  name: 张三
  age: 18
  
//创建类,读取yml中的对象
@ConfigurationProperties("student")
@Component // 使用5大类注解目的:该类会随着springboot的启动而启动
public class User {
    private int id;
    private String name;
    private int age;
//类中的属性与配置文件中的属性相对应,并带有get + set方法
//......省略get+set方法

//显示
@Controller
@ResponseBody
@RequestMapping("/user")
public class UserController {
    @Autowired //获取:将容器中的对象,给User对象
    private User user;
    @PostConstruct //初始化
    public void doPostContruct() {
        System.out.println(user.toString());
    }
}

结果:

  • 两种配置文件的区别
    a) 使用不同:properties使用key=value形式,而.yml使用key冒号+空格+value的形式;
    b) 通用性不一样:properties只是java中的配置文件,yml支持多种语言;
    c) yml支持多种数据类型;

3. 配置文件中使用的注释

注释一样,但是

application.properties默认编码不是UTF-8,会出现乱码;

application.yml 默认编码是UTF-8

解决方式:

在设置中找到settings 和 New Projects Setup 中的Setting for New Projects 搜索encoding, 将所有编码设置为UTF-8;

4. springboot开启热部署

什么是springboot的热部署?

热部署作用:自己写完代码不需要手动重启,新代码可以自动生效;(只执行修改过的.class文件,不用重启项目,提高了开发效率)

配置热部署:

1.添加springboot-dev-tool依赖

2.在idea设置中配置,开启项目自动编译


5. 在不同环境中设置配置文件

1.配置文件的约定:application-xxx.properties; (xxx处可修改)

2.配置了许多环境,在application.properties设置运行环境:

spring.profiles.activ=dev

java 复制代码
//设置的配置文件
application.properties
application-dev.properties
application-prod.properties
application-test.properties

总结

✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关推荐
萧逸才4 小时前
【learn-claude-code-4j】S14FeiShu - 飞书群聊智能体
java·人工智能·ai·飞书
SPC的存折5 小时前
openEuler 24.03 MariaDB Galera 集群部署指南(cz)
linux·运维·服务器·数据库·mysql
仲芒5 小时前
[24年单独笔记] MySQL 常用的 DML 命令
数据库·笔记·mysql
成为大佬先秃头5 小时前
开放标准(RFC 7519):JSON Web Token (JWT)
spring boot·后端·json·jwt
好家伙VCC5 小时前
**发散创新:基于Rust的轻量级权限管理库设计与开源许可证实践**在现代分布式系统中,**权限控制(RBAC
java·开发语言·python·rust·开源
SPC的存折5 小时前
MySQL 8.0 分库分表
linux·运维·服务器·数据库·mysql
回家路上绕了弯5 小时前
Git worktree 终极指南:告别分支切换烦恼,实现多分支并行开发
git·后端
m0_719084115 小时前
天机学堂aaaa
java
@atweiwei5 小时前
用 Rust 构建agent的 LLM 应用的高性能框架
开发语言·后端·rust·langchain·eclipse·llm·agent
skilllite作者5 小时前
Spec + Task 作为「开发协议层」:Rust 大模型辅助的标准化、harness 化与可回滚
开发语言·人工智能·后端·安全·架构·rust·rust沙箱