0

我的域类和持久性逻辑(Hibernate)在一个名为模型的项目中。这个 jar 包含在我的所有应用程序中。
打包的 com.company.model 和 com.company.persistance

另一个 Utils.jar - 包含 DateTime、String、Thread 等通用辅助类。这再次包含在我的所有应用程序中。
打包的 com.company.utils

我有一个 CXF/Spring 应用程序,它公开了用于操作我的数据的服务。CRUD 功能,所有其他常用功能。对于任何设计的应用程序,这是进入我的数据库的“途径”。
打包 com.company.services 并在 Glassfish 应用服务器上运行

我有其他应用程序使用 Web 服务(注入 Spring)来操作我的数据。包括一个 Web 应用程序,它将使用 YUI 小部件和来自 Web 服务的 XML/JSON 以获得一个漂亮流畅的 UI。

我明白这不是一个真正的问题!我想我正在寻找其他人如何设计他们的软件的确认。如果我的架构很好,合乎逻辑!显然存在安全问题 - 我希望某些应用程序只允许访问服务 x。我稍后会解决这些问题。

4

3 回答 3

2

听起来不错。

它还取决于您正在开发的应用程序的类型和具体要求(必须每周部署,必须部署在多个位置等)

但到目前为止听起来已经足够好了。

看起来您将来可以针对某些特定情况从此处提出问题。

因为这不是一个问题,所以我的不是一个真正的答案。连续波

于 2009-10-27T18:37:52.870 回答
0

我可能有的唯一建议是,当您创建服务/模型时,您可以按子包名称对它们进行分组。IE

com.company.model.core com.company.service.core

com.company.model.billing com.company.service.billing

此外,请注意确保没有控制器代码(操作您的 UI)最终出现在服务中。

于 2009-10-27T21:27:08.023 回答
0

我唯一的意见是将持久性和 Hibernate 类放入一个单独的模块中;这样该model模块就可以是纯粹的 bean/POJO/您的域类。

以下是我之前组织几个多模块项目的方式

  • project-data- 包含域类和 DAO(仅限接口)
  • project-services- “业务逻辑”层服务,利用 DAO 接口。
    • 取决于project-data.
  • project-hibernate- DAO 接口的休眠实现。
    • 取决于project-data.

可以想象,如果我要使用其他类型的数据访问方法,我会为此创建一个单独的模块。然后客户端应用程序可以选择要依赖的模块。

于 2009-10-27T19:07:54.353 回答