【发布时间】:2010-03-12 03:33:51
【问题描述】:
好的,我正在设计一个独立的 Web 服务(使用 RestLET 作为我的框架)。我的应用分为 3 层:
- 数据层(就在数据库之上,提供用于连接/查询数据库的 API,以及一个数据库对象)
- 对象层(负责从数据层进行序列化...提供客户层可以使用而无需担心数据库的对象)
- 客户端层(这一层是 RestLET Web 服务...基本上只是从对象层创建对象并满足 Web 服务请求)
现在,对于我在对象层中创建的每个对象,我想使用不同的凭据(这样我就可以对每个对象进行沙箱化...)。对象层不应该知道确切的凭据(即 login/pw/DB URL 等)。
管理此问题的最佳方法是什么?我在想我的数据层应该有一个超类数据库对象......每个子类都将包含所需的登录信息......这样我的对象层就可以去Database db = new SubDatabase();然后继续使用它数据库。
在客户端级别,他们只能访问ItemCollection items = new ItemCollection();,并且不知道/无法控制连接的数据库。
我问这个是因为我试图让我的平台可扩展,以便其他人可以轻松地在我的平台之外创建服务。
如果有人对这些架构问题或如何管理这类事情有任何经验,我将不胜感激任何见解或建议......
如果这令人困惑,请随时提出问题。谢谢!
我的平台是 Java,我使用的 REST 框架是 RestLET,我的数据库是 MySQL。
【问题讨论】:
-
如果你使用的是Spring或者任何应用服务器,你可以分别配置beans和datasources。您的 DAO 可以注入或查找相同的内容。如果您对接口进行编程,并且不使用任何特定于数据库的功能,那么它将正常工作。
标签: java architecture rest restlet