阿丹:
再对于若依系统的gen代码生成模块进行二次开发(项目重构之后)出现如下报错。
问题原因:
系统在加载的时候找不到数据源,大概率是线上配置nacos中的问题。
检查nacos发现已经配置数据源。但是发现问题:
通过对比报错信息发现问题,我的配置文件中并没有这个dynamic-datasource
解决方案:
在system的配置文件中找到了如下配置有关 dynamic-datasource
解决方案:
在gen的配置中添加上了对应报错的配置,如上图所示成功启动。
配置文件提供:
datasource:
druid:
stat-view-servlet:
enabled: true
loginUsername: admin
loginPassword: 123456
dynamic:
druid:
initial-size: 5
min-idle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,slf4j
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
# 主库数据源
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://XXXXXXXXX:3306/ad-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password:
# 从库数据源
# slave:
# username:
# password:
# url:
# driver-class-name:
# seata: true # 开启seata代理,开启后默认每个数据源都代理,如果某个不需要代理可单独关闭
解决原因是:
刚开始的配置文件中配置了datasource,但可能是由于配置不完整或者错误导致了报错。修复时,添加了druid连接池相关的配置,同时将datasource配置转移到了dynamic节点下,并指定了master数据源的驱动类、url、用户名密码等信息。
请注意在配置datasource时要按照要求正确的设置参数。同时,连接池配置是一个比较常用的优化方式,推荐使用连接池来管理数据库连接资源,提升系统的性能