我不知道如何实现这一点。任何帮助和/或指针将不胜感激。
目前,我的Java / Spring应用程序后端已部署在EC2上,并使用常规的Spring JDBC设置成功访问了RDS上的MySQL。也就是说,存储数据库中的信息application.properties和配置DataSource,并JdbcTemplate在@Configuration类。一切正常。
现在,我需要安全地访问RDS上的MySQL 。RDS实例已启用IAM身份验证。我还成功创建了IAM角色并应用了内联策略。然后,按照此链接上的AWS RDS文档和Java示例,我能够使用身份验证令牌和我创建的用户(而不是常规的db用户名和密码)从独立的Java类成功访问数据库。这个独立的Java类直接处理“ Connection ”对象。
我遇到的困难是如何将其转换为Spring JDBC配置。也就是说,在我的@Configuration类中为此设置DataSource和JdbcTemplatebean。
实施此方法的正确/正确方法是什么?
-----编辑-开始-----
我正在尝试将其实现为可用于多个项目的库。也就是说,它将用作JAR,并在项目的POM文件中声明为依赖项。该库将包括可配置的AWS服务,例如使用常规DB用户名和密码的RDS访问,使用IAM身份验证的RDS访问,用于数据加密的KMS(CMK /数据密钥)等。
想法是根据项目在任何Web /应用服务器上使用此库。
希望这可以澄清我的需求。
-----编辑-结束-----
DataSource内部具有getConnection(),因此我基本上可以创建自己的DataSource实现来实现所需的功能。但这是一个好方法吗?
就像是:
public class MyDataSource implements DataSource {
@Override
public Connection getConnection() throws SQLException {
Connection conn = null;
// get a connection using IAM Authentication Token for …Run Code Online (Sandbox Code Playgroud) 我正在使用Spring和DBCP,并且当操作环境上的某些配置发生更改时需要刷新我的数据源,而无需重新启动所有应用程序.
如果我在不使用DBCP的情况下执行此操作,则强制此刷新关闭当前正在打开的数据源并启动DataSource的新实例.
使用DBCP + Spring,我不能这样做.
有人知道是否有可能吗?