Java 返回连接对象的设计模式

Java 返回连接对象的设计模式,java,design-patterns,paas,Java,Design Patterns,Paas,我们正在开发PAAS应用程序Spring Boot,它有2-3个不同的模块,其中每个模块都有一些冗余代码,用于创建和关闭数据库和MQ连接 我们正在使用Hikari数据源来维护池连接,并计划将包含配置数据的代码集中化,将其作为其他数据库的父依赖项 是否有任何合适的java设计模式满足此用例?可能是工厂设计模式或抽象工厂设计模式;它们在概念上几乎相同。it的UML图 抽象的工厂设计模式听起来更奇特,但没有比工厂设计模式更复杂的东西了 在spring boot中,无需使用设计模式创建新类,即sprin

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

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


是否有任何合适的java设计模式满足此用例?

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


抽象的工厂设计模式听起来更奇特,但没有比工厂设计模式更复杂的东西了

在spring boot中,无需使用设计模式创建新类,即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

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

@Component
public class MyDataSource {
    // ....
}
Spring boot可以自动将组件连接到其他类中,如下所示请注意构造函数上方的@Autowired注释:

public class SomeServiceUsingTheDataSource {
    private final MyDataSource myDataSource;

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

我的dbconnection bean将在上下文启动期间仅使用配置数据创建,并且只有我将在整个项目中反复使用该bean。在这种情况下,抽象工厂是否可用?因为它的主要目的是对子类隐藏对象创建。我想,它会的。我想使用设计模式,这样在每个类中,我就不需要再次自动连接该类。此解决方案适用于一小部分类。您可能需要添加一些代码示例来澄清此问题。我唯一能想到的就是创建自己的数据源bean:或者使用单例模式。