返回连接对象的设计模式

Design Pattern for returning Connection Object

我们正在开发 PAAS 应用程序 (Spring Boot),它有 2-3 个不同的模块,其中每个模块都有一些用于创建和关闭数据库和 MQ 连接的冗余代码。

我们正在使用 Hikari DataSource 来维护池连接,并计划集中包含配置数据的代码,将其作为父依赖项放在其他代码中。

有没有合适的java设计模式来满足这个用例?

可能是工厂设计模式或抽象工厂设计模式;它们在概念上几乎相同。它的 UML 图 Factory Design Pattern

抽象工厂设计模式听起来更奇特,但并不比工厂设计模式更复杂。 Abstract Factory Design Pattern.

在 spring 启动时无需使用设计模式创建新的 class,spring 自行处理。只需要遵循 application.propertis

中的属性
spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

如果我正确地解释了你的问题,我认为创建一个 class 来处理连接并用 @Component 注释对其进行注释是个好主意。然后,您可以在其他 class 中使用 @Autowired 注释来引用 class。例如:

@Component
public class MyDataSource {
    // ....
}

Spring boot 可以自动将组件连接到其他 classes,如下所示(注意构造函数上方的 @Autowired 注释):

public class SomeServiceUsingTheDataSource {
    private final MyDataSource myDataSource;

    @Autowired
    public SomeServiceUsingTheDataSource(MyDataSource myDataSource) {
          this.myDataSource = myDataSource;
    }
}