use*_*433 25 rest spring spring-mvc project-structure
我是新来写一个基于ws的春季休息.我创建了一个具有以下结构的项目.
Java Resources
- src/test/java
- src/main/java
- com/sample/rest
- controller (for the request mappings)
- domain (for POJOs)
- service (for business logic)
- utility (for utility methods)
- dao (for database calls)
Run Code Online (Sandbox Code Playgroud)
我开始在域包中添加POJO,但我的问题是我的应用程序中有2种POJO.一种类型,对应于我的应用程序表结构.另一种对应于第三方结果结构的类型.
我不确定如何在我的域包下区分这两种POJO类型.
dig*_*_mb 40
大多数项目看起来像你描述的.内部域包将有一个用户包,它将具有所有用户相关的pojos.在dao上,服务也将存在相同的子包.
但我认为最好的组织就是这样拆分包:
-com.company.project
- users
UserService
UserDAO
User
Role
- cart
Cart
CartService
CartDAO
ShopItem
Run Code Online (Sandbox Code Playgroud)
它就这样了.我第一次看到来自Spring Source的人的谈话.我会尝试找到这个视频.
无论如何,我正在用这个策略开展一个项目几个月,直到现在它似乎比传统方式更有条理.
如果包(例如用户)变得过于拥挤,您始终可以创建子包以在其中进行组织.但对于大多数软件包,它将是1或2个域类,一个DAO和一个服务.所以不需要更多的包裹.
更新:我认为这是视频:http://www.youtube.com/watch?v = tEm0USdF-70
小智 8
让我们从模块/库的角度来思考.
很高兴在应用程序之外分离核心业务逻辑库,将其与测试库分开,并通过利用核心业务逻辑内部的功能来使用其他库来包含核心业务逻辑库.
Module : MyAppLogic.jar
-> com.company.user
-> class UserBean : Pojo
-> class UserDao : insert( String userName , String userEmail ) ;
-> class UserService : insert( UserBean userBean ) ;
-> com.company.cart
-> class CartBean : Pojo
-> class CartDao : insert( int cartUserId , int cartItemId ) ;
-> class CartService : insert( CartBean cartBean ) ;
Module : MyAppRest.jar
-> com.company.rest.domain
-> class User : @XmlRootElement
-> class Cart : @XmlRootElement
-> com.company.rest.model
-> interface UserServiceIntf : insert( User user ) ;
-> class UserServiceImpl : private UserService userService ;
-> interface CartServiceIntf : insert( Cart cart ) ;
-> class CartServiceImpl : private CartService cartService ;
-> com.company.rest.service
-> class UserRestService : @Path("/users")
-> class CartRestService : @Path("/carts")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17141 次 |
| 最近记录: |