关于javaagent的实现见上一篇文章,在本文中不再重点阐述
聊一聊java中的main方法、premain方法、Instrumentation接口
本项目环境及相关依赖说明:
jdk: 1.8.0_311
springboot: 2.6.4
maven: 3.6.3
凭据管理系统: ssm(腾讯的一个产品,无广告嫌疑,可选任意同类产品或类似功能的系统)
部署方式:docker
项目说明:
为了减少将数据库密码等敏感信息直接明文配置在项目配置文件中而造成的密钥泄漏问题,本文选用了某大厂的一个凭据管理系统ssm,结合javaagent实现了密钥信息的统一化配置。
项目结构:
主要配置信息:
pom.xml:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!--权限认证-->
<upms.authority.url>http://authapi-server-svc.xxx:8080</upms.authority.url>
<upms.authority.token>***</upms.authority.token>
<!--db-->
<dataBase.transfer.url>
<![CDATA[ jdbc:mysql://x.x.x.x:3306/db_test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&noAccessToProcedureBodies=true&serverTimezone=GMT%2b8&allowMultiQueries=true ]]>
</dataBase.transfer.url>
<dataBase.transfer.user>user_test</dataBase.transfer.user>
<dataBase.transfer.password>***</dataBase.transfer.password>
<!-- redis -->