2013-04-27 2 views
0

Я работаю в личном веб-проекте, и я хотел бы использовать Spring Data и JPA. Я нашел this nice blog entry в springsource.com, и я потратил несколько часов, пытаясь понять, как эта работа и почему они это делают. Мне нужна помощь с двумя вопросами в основном:Реализация метода репозитория данных Spring

  1. Почему необходимо использовать классы Service и ServiceImpl. Это похоже на типичную реализацию JPA 2, но с использованием Spring Data снизу с репозиторией Autowired. Это меня действительно смущает. Почему бы не использовать репозиторий напрямую?
  2. Автор определяет пару новых методов в CustomerRepository, но реализации не существует. Он продолжает внедрять CustomerService, что он не связан с репозиторием. Я видел это на многих сайтах, но я не понимаю, как это работает.

Как я уже сказал, я искал хорошую статью, чтобы найти ответы на мои вопросы, но большинство из них, похоже, следуют за этими. Я также проверил github-код проекта статьи, но он не завершен. Я надеюсь, что вы можете мне помочь.

ответ

3

Пункт сообщения в блоге состоит в том, чтобы говорить о хранилищах данных весны. Поэтому он не уточняет, почему услуги необходимы.

Это потому, что типичный бизнес-метод будет иметь дело с несколькими DAO/Repositories в одной транзакции. Например, передача денег может включать вызов AccountRepository, AudiRepository и CustomerRepository. Основная цель службы - обеспечить транзакционные бизнес-методы для уровня представления.

+0

Oh! Понимаю. А как насчет реализации метода репозитория? Почему не существует метода для метода. 0BNLASNAME (String lastname, pageable pageable); Автор использует его напрямую, не определяя тело первым. –

+0

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

+0

Но весна также определяет тело метода? Действительно интересный и впечатляющий ... Большое спасибо за вашу помощь;) –

Смежные вопросы