tk's blog
  • tk's blog Read Me
  • 算法相关
    • 数据结构
      • 【集训整理】 旋转treap模板
      • 二叉树及相关数据结构的java语言实现
      • 快乐树0x01:AVL树的java实现
      • 快乐树0x02 线段树实现(c++)
      • 链表的Java语言实现
    • 算法
      • DP的背包问题小结-java语言描述
      • 【集训整理】2-SAT问题 模板题
      • 【集训整理】Tarjan算法 模板题
      • 【集训整理】差分约束 模板题
      • 【集训整理】最近公共祖先LCA 模板题
      • 二分查找与二分答案-java实现
      • 动态规划-java语言练习一:暴力DP
      • 快速幂
      • 状态压缩DP-java描述
      • 差分
      • 乘法逆元
    • 题解
      • CFRound-GoodBye2022题解
  • java相关
    • Java与算法竞赛——注意事项摘录
    • java面向对象简要总结 一
    • java面向对象简要总结 三
    • java面向对象简要总结 二
  • 后端相关
    • Linux-Crontab命令
    • Spring Data JPA 使用方法
    • Spring集成Artemis实现JSM的异步消息传递
    • Spring使用自定义配置项
    • MIT6.824分布式系统Lab1.MapReduce笔记
    • MIT6.824分布式系统Lab2-Raft-A笔记
    • MIT6.824分布式系统Lab2-Raft-B笔记
  • 杂谈
    • 杂谈-关于2021
  • 杂项
    • c语言 scanf的返回值
    • 系统设计
  • 计科基础
    • 编译原理
      • 编译原理:词法分析笔记
    • CSAPP 第二章笔记
    • 计算机组成原理笔记
    • CSAPP Lab1. Datalab
    • CSAPP Lab2 Bomblab
  • C++每日一题
    • C++每日一题 Day 1 肥宅水
    • C++每日一题 Day 2 数字反转
    • C++每日一题 Day 3 理五的凡尔赛风气
    • C++每日一题 Day 4 我喜欢这个数
    • C++每日一题 Day 5 数字楼梯
    • C++每日一题 Day 6 插火把
    • C++每日一题 Day 7 贪吃蛇
    • C++每日一题 Day 8 蒙德最强战力
    • C++每日一题 Day 9 璃月七星选举
    • C每日一题 Day 2 肥宅水
    • C每日一题 Day 3 理五的凡尔赛风气
    • C语言每日一题 Day 1 荧妹好感队
由 GitBook 提供支持
在本页
  1. 后端相关

Spring使用自定义配置项


在写Spring应用的时候,经常会用到Spring支持的application.yml 或 application.properties 来对Spring的一些属性进行设置。

实际上,Spring的这些配置项是与Spring内部的一些bean一一对应的。在配置文件修改这些属性时,就是在修改Spring运行时对应的一些bean的各种属性。

application.yml 和 application.properties 的区别:

本质上他们的作用相同,仅仅是格式不同而已。.yml使用yaml格式,用冒号和缩进表示属性、参数以及层级关系;.properties格式用.来作为层级的区分。

基于这种配置项与bean的一一对应关系,我们可以通过Spring提供的注解来使得我们的bean与自定义的配置项挂钩。

为了使得一个模块专注于自己的事而不必兼顾配置项的读取,最好将一个模块需要用到的配置项抽取出来,集合到一个专用于储存配置的类中,比如下面的类AppConfig。

package cc.mcyou.jmstest;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "mcyou.config")
@Data
public class AppConfig {
    boolean config1 = true; //默认值
    int config2 = 1;
}

注解说明:

  • 使用Spring提供的注解@ConfigurationProperties 即可告诉Spring应该将这个类纳入配置项管理。属性prefix表示在配置项里这个类的属性将在哪个层级下表示。

  • 为了使其他类能够使用配置类读取配置项,用@Component将其注册为bean。在需要的类处使用@autowired引入即可。

  • 由于Spring管理配置时都会使用set get等标准bean方法,所以这里必须提供get set方法,否则配置项不生效。这里用lombok的@Data。

接下来在对应的.yml或.properties文件里进行配置即可。

mcyou:
  config:
    config1: false
    config2: 2

除了在这里配置,自定义配置同样可以通过部署环境的环境变量进行调整。

上一页Spring集成Artemis实现JSM的异步消息传递下一页MIT6.824分布式系统Lab1.MapReduce笔记

最后更新于2年前