我们有一个由少数应用程序组成的平台。
我们必须开发一个API,它必须将所有与数据库的交互分解。 在此API中,我们也将以XML格式提供数据库版本。 XML格式将仅由一个应用程序使用。
我们的应用程序是在经典架构中开发的:道服务层 - 表示层。
DAO图层将移至API中。那点没问题。 在许多应用中,服务层只是演示和演示之间的一个网关。没有特定业务代码的dao层。
所以我的问题是:
需要帮助! :p 我迷路了...
仅供参考,我们使用Spring 3.1.1使用Java 1.6。 DAO中的JDBC模板。 我们正在查看关于spring数据jdbc的信息来替换JDBC Template。 任何关于这一点的建议都可以理解^^ [没有Hibernate - JPA解决方案]
谢谢。
[编辑1]
换句话说,在应用程序中保留一个服务层&在API中是一种让我拥有抽象层的方法。如果我们必须修改数据库结构,如果我们也可以直接在API的服务层进行一些更改,也许我们不必编辑所有应用程序。
想象一下3种可能性:
您选择什么解决方案?
[编辑2]
创建一个独特的类来调用API有趣吗?就像在Facade设计模式中一样。
答案 0 :(得分:0)
使用服务层来实现目的:通过使用每个服务提供的一个或多个DAO(以及管理事务,清理String
和其他类似的东西)来提供真实世界的服务。
如果您(与经验更丰富的同事一起)认为您不需要此服务层,那么请不要将其放入您的架构中。但请确保创建您的体系结构的概念证明(这可能包含系统或部分功能的某种复杂功能的实现),因此您可以稍后评估它以证明您是否真的不需要这样的层(或如果你这样做。)
答案 1 :(得分:0)
我的理解是,您需要从表示层解耦和重用业务层,使用相同的业务实现来拥有多个客户端应用程序。
在这种情况下,您需要在API中实现服务层。一些优点:
在此API中,我们也将以XML格式提供数据库版本。 XML格式将仅由一个应用程序使用。
通过API提供此实现,如果需要,更多客户端应用程序将来可以使用它。
Spring Remoting为这样的设计提供了出色的工具(RMI,HTTP调用程序等)
我没有看到为DAO证明API的任何附加价值。