Spring Framework: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 31:
'''Сервис-слой''' приложения(Содержит интерфейсы, в которых описано ЧТО ДЕЛАТЬ С ДАННЫМИ или, другими словами, бизнес логика приложения . Также содержит практические реализации этих интерфейсов.). Добавим в проект файлы IUserService.java, UserService.java и User.java.
 
[[Spring_Framework_Guide#Аннотации| Аннотации]]
'''@Service''' - Объявляем, что этот класс представляет собой сервис – компонент сервис-слоя. Сервис является подтипом класса @Component. Использование данной аннотации позволит искать бины-сервисы автоматически.
 
'''@Repository''' - Аннотация показывает, что класс функционирует как репозиторий и требует наличия прозрачной трансляции исключений. Преимуществом трансляции исключений является то, что слой сервиса будет иметь дело с общей иерархией исключений от Spring (DataAccessException) вне зависимости от используемых технологий доступа к данным в слое данных.
 
'''@Transactional''' - Перед исполнением метода помеченного данной аннотацией начинается транзакция, после выполнения метода транзакция коммитится, при выбрасывании RuntimeException откатывается.
 
 
Интерфейс сервиса org.app.service.IUserService
Строка 234 ⟶ 229 :
'''Веб-слой''' приложения (классы-контроллеры, описывающие КАК и КОГДА приложение взаимодействует с пользователем через веб.). Добавим в проект контроллер UserController.java
 
[[Spring_Framework_Guide#Аннотации| Аннотации]]
'''@Autowired''' - Аннотация позволяет автоматически установить значение поля.
'''@Controller''' - Аннотация для маркировки java класса как класса контроллера. Данный класс представляет собой компонент, похожий на обычный сервлет (HttpServlet) (работающий с объектами HttpServletRequest и HttpServletResponse), но с расширенными возможностями от Spring Framework.
 
'''@RequestMapping''' - Аннотация используется для маппинга урл-адреса запроса на указанный метод или класс. Можно указывать конкретный HTTP-метод, который будет обрабатываться (GET/POST), передавать параметры запроса.
 
'''@ModelAttribute''' - Аннотация, связывающая параметр метода или возвращаемое значение метода с атрибутом модели, которая будет использоваться при выводе jsp-страницы.
 
'''@PathVariable''' - Аннотация, которая показывает, что параметр метода должен быть связан с переменной из урл-адреса.
 
'''@Scope''' - Аннотация для установки области жизни бина: ''singleton'' (только один экземпляр бина создается для IoC контейнера; значение по умолчанию ), ''prototype'' (создается новый экземпляр бина когда приходит запрос на его создание), ''request'' (один экземпляр бина для каждого HTTP запроса ), ''session'' (один экземпляр бина для каждой сессии), ''globalSession'' (один экземпляр бина для каждой глобальной сессии)
 
'''@PostConstruct''' - Аннотация для метода, который будет вызван после вызова конструктора бина.
 
'''@PreDestroy''' - Аннотация для метода, который будет вызван перед уничтожением бина.
 
 
<source lang="java">
Строка 1679 ⟶ 1659 :
 
= Ссылки =
 
[[Spring_Framework_Guide | Гид по Spring Framework-у]]
 
[http://www.springsource.org/ Сайт Spring-а]