Упрощение разработки на Java. Это задача Spring. Что такое POJO?

returnt

22.03.2018

Spring и POJO

Что такое Spring?

Spring — это основа с открытым исходным кодом на основе POJO, первоначально созданная Родом Джонсоном и описана в книге «Эксперт один на один»: J2EE Design and Development (Wrox, 2002). Spring был создан для решения сложной задачи корпоративной разработки и позволяет использовать JavaBeans для того что бы достичь тех целей, которые ранее были возможны только с EJB. Но полезность Spring не ограничивается развитием на стороне сервера. Любое приложение Java может извлечь выгоду из Spring термины простоты, проверяемости и свободной связи.

Как вы увидите в этой книге, Spring умеет делать много. Но в корне почти все, что предлагает Spring, — это несколько основополагающих идей.

Основная задача Spring: Spring упрощает разработку Java.

Это заявление! Многие структуры требуют упростить что-то.

Но Spring стремится упростить широкий предмет разработки Java. Это требует большего объяснение. Как Spring упрощает разработку Java?

Чтобы избежать сложности Java, Spring использует четыре ключевые стратегии:

  • Легкое и минимально инвазивное развитие с помощью POJO
  • Свободное соединение через DI и ориентацию интерфейса
  • Декларативное программирование через аспекты и общие соглашения
  • Исключение кода шаблона с аспектами и шаблонами

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

Далее в этой главе я расскажу о каждой из этих идей, показывая конкретные примеры того, как Spring делает все возможное для упрощения разработки Java. Начнем с того, что Spring остается минимально инвазивной, поощряя POJO-ориентированное развитие.

Развязывание полномочий POJO

Если вы давно занимаетесь разработкой Java, вы, вероятно, видели (и, возможно, даже работали с) фреймворками, которые блокируют вас, заставляя продлить один из своих классов или реализовать один из своих интерфейсов. Простой пример такого инвазивного программирования была EJB 2-эра без сессий. Но даже если EJB были такой легкой мишенью, инвазивное программирование можно было легко найти в ранних версиях версиях Struts, WebWork, Tapestry и множество других спецификаций Java.

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

Для иллюстрации рассмотрим класс HelloWorldBean, показанный в следующем лисстинге.

public class DamselRescuingKnight implements Knight {

    private RescueDamselQuest quest;

    public DamselRescuingKnight() {
        this.quest = new RescueDamselQuest();
    }

    public void embarkOnQuest() {
        quest.embark();
    }
}

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

Несмотря на свою простую форму, POJO могут быть мощными. Один из способов использования POJO путем сборки их с помощью DI. Давайте посмотрим, как DI может помочь использовать объекты приложения, отделенные друг от друга.

Предыдущая статья

Больше разделов

Перевод книги: Spring in action
Fourth edition
CRAIG WALLS