Узнайте, как привязать бины Spring с использованием XML и классов Java

Узнайте, как привязать бины Spring с использованием XML и классов Java

Для подключения компонентов Spring используются два подхода: конфигурация XML и класс Java. Привязка может быть выполнена вручную путем параметра XML- файлов или при помощи классов Java. Также можно позволить Spring выполнить привязку на основе нескольких спецификаций.

Основная цель данной статьи – показать, как компоненты Spring могут быть привязаны при помощи двух упомянутых выше подходов.

Для чего используется фреймворк Spring?

Spring Framework — это одна из популярных сред разработки приложений, которая имеет в себя следующие преимущества:

  • Использование только нужных модулей. Spring предоставляет несколько разных пакетов и классов. А также может использовать только нужные из них.
  • Функция применения иных технологий.

Spring использует иные технологии: фреймворки логов, ORM, таймеры Quartz, JEE и JDK и иные.

  • Компактность Контейнер Spring легче по сравнению с контейнером EJB. Он развертывать приложения на основе Spring на маломощных компьютерах.
  • Гибкая система управления транзакциями Интерфейс управления транзакциями Spring может использоваться обработки как глобальных транзакций(Java Transaction API), так и локальных транзакций(в одной базе данных).

Что такое привязка бинов?

Когда запускается программное приложение, совместно работают сразу же пару объектов(бинов). Также они могут использоваться независимо от иных объектов.

Чтобы заставить бины работать вместе, их связывают через введение зависимостей в Spring(привязки). Когда запускается приложение на основе Spring, контекст приложения загружает определения компонентов или объектов из файла конфигурации и связывает их вместе.

Существует два подхода к привязке bean-компонентов в среде Spring:

  • Привязка через XML.
  • Привязка через классы Java.

Что такое автоматическая привязка?

Существует два метода привязки bean-компонентов в среде Spring:

  • Вручную, объявив bean-компоненты при помощи Dependency Injection(DI)
  • Позволить контейнеру Spring самостоятельно связать необходимые компоненты.

Последний метод известен как автоматическая привязка. При этом контейнеру Spring необходимо указать, как он должен их связывать:

  • byName: контейнер Spring ищет бины, для которых в файле конфигурации XML для атрибута auto wire установлено значение byName.
  • byType: контейнер ищет бины, для которых в файле конфигурации XML для атрибута auto wire установлено значение byType.
  • constructor: выполняется поиск бинов, для которых для атрибута auto wire установлено значение constructor.
  • autodetect: метод автоматического подключения — через конструктор. Если он не работает, автоматическое подключение выполняется через настройка byType.

Что такое привязка через Java и XML?

Подключение bean-компонентов Spring может выполняться через классы Java и при помощи конфигурации XML. В этом разделе мы рассмотрим оба варианта:

XML: Подключение выполняется в файле конфигурации XML. Он включает определения bean-компонентов. Когда запускается приложение, бины вызываются при помощи Dependency Injection(DI). В файле конфигурации надо объявить элемент и использовать элементы <constructor-arg>, <property>. Классы Java: Надо создать класс Spring Configuration и аннотировать класс @Configuration. Класс @Configuration сообщает Spring, что bean-компоненты, которые должны быть подключены и настроены в этом классе.

Параметр среды

Параметр среды для разработки приложений Spring, содержит всего три основных шага.

  • Параметр Java Development Kit Загрузите JDK с официального веб-сайта Oracle, а далее установите и настройте его. После этого надо задать переменные среды PATH и JAVA_HOME.
  • Параметр Eclipse IDE Eclipse можно без труда скачать с официального веб-сайта. После завершения загрузки распакуйте двоичные файлы, а далее установите PATH.
  • Параметр библиотек Spring Spring можно скачать здесь. Важно правильно установить CLASSPATH.

Пример приложения

Мы разработаем два приложения. В первом бины будут подключаться с использованием аннотаций, а во втором приложении – при помощи XML-файла конфигурации.

Подключение через аннотации — у нас будет три класса Java, как показано ниже.

Листинг 1: Класс бина

package com.dashboardapp.beanwire; public class BeanWire { private String message; public void setMessage(String message){ this.message = message; } public void getMessage(){ System.out.println("Message is: " + message); } }

В следующем классе для информирования контейнера Spring о том, что будет загружен beanWire, используются две аннотации. Аннотация @Configuration сообщает контейнеру Spring, что этот класс будет источником определений бина.

Аннотация @Bean информирует среду Spring, что способ вернет объект, который должен быть зарегистрирован как компонент в контексте приложения.

Листинг 2: Класс конфигурации Bean с аннотациями

package com.dashboardapp.beanwire; import org.springframework.context.annotation.*; @Configurationpublic class BeanWireConfig { @Bean public BeanWire beanwire(){      return new BeanWire();    } }

Ниже приведен последний класс для запуска приложения.

Листинг 3: Основной класс для запуска приложения

package com.dashboardapp.beanwire;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.*;public class BeanWireMain { public static void main(String[] args) {       ApplicationContext ctx =        new AnnotationConfigApplicationContext(BeanWireConfig.class);           BeanWire beanwire = ctx.getBean(BeanWire.class);       beanwire.setMessage("Hello Bean. You are wired by annotation.....!");       beanwire.getMessage();    }}

Когда эта Java-программа будет выполнена, она выдаст следующий результат.

Узнайте, как привязать бины Spring с использованием XML и классов Java

Сейчас рассмотрим, как привязывать бины через XML-файл.

Привязка через XML-файл: У нас будет два Java-файла и один XML-файл конфигурации.

Java-класс бина практически аналогичен предыдущему.

Листинг 1: Файл бина

package com.dashboardapp.beanwire;public class BeanWireXML { private String message;    public void setMessage(String message){       this.message  = message;    }    public void getMessage(){       System.out.println("Message is: " + message);    }}

Это XML-файл конфигурации.

Листинг 2: Конфигурационный XML-файл.

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsd">    <bean id="beanwire" class="com.dashboardapp.beanwire.BeanWireXML">            </bean></beans>
Узнайте, как привязать бины Spring с использованием XML и классов Java

Это файл для получения компонента из XML-файла конфигурации и вызова способов.

Листинг 3: Основной Java-файл.

Package com.dashboardapp.beanwire;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;public class BeanWireXMLMain { public static void main(String[] args) {   ApplicationContext context = new FileSystemXmlApplicationContext(                "WebContent/WEB-INF/appConfig.xml");           BeanWireXML beanwireobj =(BeanWireXML)context.getBean("beanwire");       beanwireobj.setMessage("Hello Bean. You are wired by XML config.....!");       beanwireobj.getMessage();    }}

Запустите приложение, и оно выдаст следующий результат.

Узнайте, как привязать бины Spring с использованием XML и классов Java

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *