我的域类和持久性逻辑(Hibernate)在一个名为model的项目中。这个jar包含在我的所有应用程序中 打包的com.company.model& com.company.persistance
另一个Utils.jar - 包含DateTime,String,Thread等一般助手类。这也包含在我的所有应用程序中 打包的com.company.utils
我有一个CXF / Spring应用程序,它公开了用于操作我的数据的服务。 CRUD功能,所有其他常用功能。对于任何设计的应用,这都是我的数据库的“方式” 打包的com.company.services并在Glassfish应用服务器上运行
我有其他应用程序使用Web服务(Spring注入)来操纵我的数据。包括将使用YUI小部件的Web应用程序和来自Web服务的XML / JSON,以获得流畅的UI。
我明白这不是一个问题!我想我正在寻找确认这是其他人如何设计他们的软件。如果我的架构具有良好的逻辑意义!显然存在安全问题 - 我希望一些应用程序只允许访问服务x。我稍后会解决这些问题。
答案 0 :(得分:2)
听起来不错。
这还取决于您正在开发的应用程序类型及其具体要求(必须每周部署,必须部署在多个位置等)
但到目前为止听起来还不错。
看起来您可以在将来针对某些特定情况制定问题。
由于这不是一个问题,我的答案并不是真的。 CW
答案 1 :(得分:0)
我唯一的评论是将持久性和Hibernate类放入一个单独的模块中;以便model
模块可以是纯bean / POJO /您的域类。
以下是我在
之前组织了一些多模块项目的方法project-data
- 包含域类和DAO(仅限接口)project-services
- “业务逻辑”层服务,使用DAO接口。
project-data
。project-hibernate
- DAO接口的Hibernate实现。
project-data
。可以想象,如果我使用其他类型的数据访问方法,我只会为此创建一个单独的模块。然后,客户端应用程序可以选择要依赖的模块。
答案 2 :(得分:0)
我建议的唯一建议是,当您创建服务/模型时,按子包名称对它们进行分组。即
com.company.model.core com.company.service.core
com.company.model.billing com.company.service.billing
另外,请注意确保服务中没有控制器代码(操作UI)。