SpringBoot读取配置文件创建全局变量

问题发现

  由于公司架构问题,生产库与测试库难以剥离,项目的增加后生产库越来越庞大,数据库有时候面临崩溃的边缘。公司经过研究后,运维方面通过物理条件横向扩展来解决,增加库的容量、加速正式库与测试库的拆分;项目方面通过运维整理出的慢SQL集进行优化,组长通过Review代码整理项目影响数据库所在问题。
  经过整理后发现一个问题,项目中有很多定时任务在跑,但是定时任务的服务中没有加多数据源,所以进行其他库的CRUD的时候,都是通过获取封装后的Druid的数据库连接池进行操作数据库。但是每个定时任务在启动时都会创建一个连接池,并没有起到缓存的作用。

public class Scheduler{
   

    private static DataBaseFactory dataBase = new DataBaseFactory(connectConstant.DB_DRIVER,connectConstant.DB_URL,connectConstant.DB_USER,connectConstant.DB_PASSWORD);
    
	/*业务代码*/
  }

解决思路

  之前数据库配置写在静态类中,准备将配置信息转移到yml文件中,写一个配置类去读取后装载一个单例数据库连接池对象,其他线程使用时注入这个配置类进行获取。

代码

① 配置文件
  在application.yml文件中添加配置信息,可以自定义标签名。

report:
  driver: com.mysql.jdbc.Driver
  url: jdbc:mysql://ip:port/dataName?characterEncoding=UTF-8
  user: ******
  password: *****

② 配置类读取信息并创建对象

  • prefix需要与配置文件中的头部标签匹配
  • 成员属性与配置文件的子标签匹配并必须要有getter、setter方法
  • 此处创建数据库连接池对象应用单例
import com.sw.www.task.database.DataBaseFactory
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值