modelandview - ¿Cómo definir la estructura del paquete para una aplicación Spring REST MVC?
spring mvc ejemplo (2)
La mayoría de los proyectos se parecen a lo que describiste. El paquete de dominio interno tendría un paquete de usuario donde tendría todos los pojos relacionados con el usuario. En dao, el servicio también existiría los mismos subpaquetes.
Pero una organización que creo que es mejor dividir los paquetes es así:
-com.company.project
- users
UserService
UserDAO
User
Role
- cart
Cart
CartService
CartDAO
ShopItem
Y así continúa. Lo vi por primera vez en una charla de un chico de Spring Source. Intentaré encontrar el video.
De todos modos, estoy trabajando en un proyecto con esta estrategia durante algunos meses, y hasta ahora parece más organizado que de manera tradicional.
Si un paquete, por ejemplo, los usuarios, se llena demasiado, siempre puede crear subpaquetes para organizar en su interior. Pero para la mayoría de los paquetes serán 1 o 2 clases de dominio, un DAO y un Servicio. Así que no hay necesidad de más paquetes.
Actualización: creo que este es el video: http://www.youtube.com/watch?v=tEm0USdF-70
Soy nuevo en escribir un resto de primavera basado en ws. Creé un proyecto con la siguiente estructura.
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)
Comencé a agregar POJOs en el paquete del dominio, pero mi problema es que tengo 2 tipos de POJOs en mi aplicación. Un tipo que corresponde a la estructura de la tabla de mi aplicación. Otro tipo que corresponde a una estructura de resultados de terceros.
No estoy seguro de cómo puedo diferenciar estos 2 tipos de POJO en mi paquete de dominio.
Vamos a pensar desde el punto de vista del módulo / biblioteca.
Es bueno haber separado la biblioteca de lógica de negocios central fuera de la aplicación, mantenerla separada con la biblioteca de prueba y la biblioteca de descanso para abarcar la biblioteca de lógica de negocios central utilizando la funcionalidad dentro de la lógica de negocios central.
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")