版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/li740207611/article/details/84196825
关于spring boot,yml文件配置的自己见解
使用场景
如果项目中存在大量重复的代码,大量重复指的是大量的if else 或者逻辑上的大量判断
就不要在程序里面进行处理了,这样不仅造成代码的兼容性很低,而且可读性更低,维护代价巨大无比。
通过java万物皆对象的思想,把这些数据进行抽象到配置文件中,然后通过读配置文件来进行处理。
这样如果有新的模型需要处理,添加配置文件或者修改配置文件就ok,不需要修改代码。
example
项目需要处理10个excell文件,excell文件是由10+的sheet页组成,sheet页中是大量的公式而每个
excell文件是不一样的。要通过web页面实现excell输入数据,单击计算,显示所有sheet页中的数据功能。
这里面输入数据的sheet每个模型不一样,输出数据的sheet页也不一样。而sheet页本身是有意义的,而由于
使用java poi来实现excell公式计算,有些公式没有实现,所以需要进行特殊处理。
我把10个excell文件,进行分类,modelType 1–>10,对应各自的excell文件。
通过在yml文件中配置model1,model2,这样前台js只要传递model类型,其他的数据我都可以通过yml文件得到
这样程序的处理流程是一样的,不管你有10个模型,还是1000个模型,都不用修改代码,只需要修改配置文件。
evaluationModel:
config:
models:
model1:
# 项目列表:装机容量、年理论发电小时数、当地保障小时数;概览列表:项目所在地、动态总投资、融资比例、项目IRR、股权IRR
keys: 附表3_B13,附表3_B14,附表3_B19,附表3_B12,附表3_B24,附表3_B80,附表5_B105,附表5_B93
calculate:
# 有些需要模型需要计算无补贴电价,所以需要重新设置一些单元格的值, replace可以有多个
# 如果有多个以 英文逗号隔开 example: 附表3_B48, 附表3_B49
#如果calculateList.get(1...n) ,如果1-n 中的setPosition中有重复的单元格,则 后面的会覆盖前面的
- cellPosition : 附表3_B48
cellValue : 0
setPosition : 附表3_I14,附表3_K14
getPosition : 附表3_I10,附表3_K10
# 项目退出,如果存储整个sheet则填写相应的sheet,可以有多个。
# 如果要存储指定的单元格,可以传单元格的位置数组。
# 如果sheet 和 cellPosition 都填值,则这些数据都存储。
exit:
sheet: 附表6
cellPosition:
# 模型假设页
inputSheet : 附表3
# 敏感系数计算 , replace可以有多个
sensitivity:
- cellPosition: 附表6_B23,附表6_B24
cellValueY: 0.85,0.9,0.95,1,1.05,1.1,1.15
cellValueX: 0.85,0.9,0.95,1,1.05,1.1,1.15
setPosition: 附表6_C29:附表6_I35
getPosition: 附表6_B28