Учебники

Spring — Конфигурация на основе аннотации

Начиная с Spring 2.5 стало возможным настраивать внедрение зависимостей с помощью аннотаций . Таким образом, вместо использования XML для описания связывания bean-компонентов, вы можете переместить конфигурацию bean-компонента в сам класс компонента, используя аннотации к соответствующему классу, методу или объявлению поля.

Добавление аннотации выполняется до внедрения XML. Таким образом, последняя конфигурация переопределяет первую для свойств, связанных через оба подхода.

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

<?xml version = "1.0" encoding = "UTF-8"?>

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context = "http://www.springframework.org/schema/context"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">

   <context:annotation-config/>
   <!-- bean definitions go here -->

</beans>

Как только <context: annotation-config /> настроен, вы можете начать комментировать свой код, чтобы указать, что Spring должен автоматически связывать значения в свойствах, методах и конструкторах. Давайте посмотрим на несколько важных аннотаций, чтобы понять, как они работают —

Аннотация @Required применяется к методам установки свойств бина.

Аннотация @Autowired может применяться к методам установки свойств бина, методам без установки, конструктору и свойствам.

Аннотацию @Qualifier вместе с @Autowired можно использовать для устранения путаницы, указав, какой именно компонент будет подключен.

Spring поддерживает аннотации на основе JSR-250, которые включают аннотации @Resource, @PostConstruct и @PreDestroy.