Подтвердить что ты не робот

Как определить структуру пакета для приложения Spring REST MVC?

Я новичок в написании ws w760 > rest. Я создал проект со следующей структурой.

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)

Я начал добавлять POJO в пакет домена, но моя проблема в том, что у меня есть 2 типа POJO в моем приложении. Один тип, который соответствует структуре таблицы приложений. Другой тип, который соответствует структуре результата третьей стороны.

Я не уверен, как я могу различать эти 2 типа POJO в моем пакете домена.

4b9b3361

Ответ 1

большинство проектов выглядят так, как вы описали. Внутренний пакет домена будет иметь пользовательский пакет, в котором он будет иметь все связанные с пользователем поджы. На dao служба также будет содержать те же подпакеты.

Но организация, которая, как мне кажется, лучше всего состоит в разделении пакетов, такова:

-com.company.project
    - users
         UserService
         UserDAO
         User
         Role
    - cart
         Cart
         CartService
         CartDAO
         ShopItem

И так оно и есть. Я впервые увидел это в разговоре с парнем из Spring Source. Я попытаюсь найти видео.

В любом случае, я работаю над проектом с этой стратегией в течение нескольких месяцев, и до сих пор кажется более организованный, чем традиционный способ.

Если пакет, например пользователи, становится слишком переполненным, вы всегда можете создавать подпакеты для организации внутри него. Но для большинства пакетов это будет 1 или 2 класса домена, один DAO и один сервис. Поэтому нет необходимости в дополнительных пакетах.

Обновление: я думаю, что это видео: http://www.youtube.com/watch?v=tEm0USdF-70

Ответ 2

Давайте подумаем с точки зрения модуля/библиотеки.

Хорошо иметь отдельную библиотеку бизнес-логики вне приложения, поддерживать ее отдельно с тестовой библиотекой и библиотекой отдыха, чтобы охватить основную библиотеку бизнес-логики, используя функциональные возможности внутри основной бизнес-логики.

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")