我正在实现一个 web 应用程序并提供一些休息 API。
以下是我的网络应用程序的结构。
服务层
服务类包含不同的 API。
它调用DAO,它是一个单例类(我宁愿说它是一个Enum并且只为Enum定义了实例)并且它没有任何状态。我的意思是 DAO 层类中没有实例变量。
DAO 层
DAO 类获取数据库连接(DB 连接是通过Enum类提供的,我在实例化 Enum时创建了连接),并在 DB 上执行相应的查询。
所以应用程序架构是这样的。
ServiceClass {
Dao.operation()
}
DaoEnum {
instance;
operation() {
DBConnectionEnum.instance.connection.preparedStmt.respective operation
}
}
DBConnectionEnum {
DBConnectionEnum() {
grabDBConnection()
}
}
我知道我必须使用connectionpool来抓取db连接,但我无法理解Dao层造成的影响,即单例。
您能否建议我这是一个正确的设计,还是会耗尽应用程序?可以进行哪些改进以使应用程序更加健壮、快速和高性能?