Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Spring — это среда Java, которая использует контейнер для создания различных компонентов приложения и управления ими. Контейнер (часто называемый контекстом приложения Spring) соединяет различные компоненты в приложении, используя шаблон проектирования внедрения зависимостей (DI). DI позволяет вам использовать объект в зависимом классе, не создавая его новый экземпляр в зависимом классе.

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

Изучение основных возможностей Spring

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

instagram viewer

  • Основной контейнер
  • Доступ к данным/интеграция
  • Интернет
  • Аспектно-ориентированное программирование и инструментарий
  • Тест

Весенний контейнер

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

Эти метаданные конфигурации могут иметь несколько различных форм, но их типичная форма — XML. В дополнение к bean-компонентам контейнер Spring также состоит из ядра, контекста и модуля выражения.

Spring доступ к данным/интеграция

Аспект доступа к данным/интеграции Spring Framework состоит из нескольких подмодулей: JDBC, ORM, OXM, JMS и транзакции. Эти модули работают вместе для управления любыми данными, которые использует ваше приложение.

Весенняя сеть

Веб-функция приложения Spring обеспечивает веб-интеграцию для вашего приложения. В дополнение к веб-интеграции Spring предоставляет модуль веб-сервлета. Модуль веб-сервлета отвечает за реализация модели-представления-контроллера (MVC).

Spring Аспектно-ориентированное программирование (АОП)

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

Декларативное управление транзакциями является желательным подходом к разработке программного обеспечения, поскольку оно минимально влияет на код приложения.

Весенний тест

Spring уделяет большое внимание тестированию приложений. Его тестовый модуль поддерживает интеграционное и модульное тестирование с использованием JUnit или TestNG.

Создание приложения Spring

Есть несколько способов создать шаблон для нового приложения Spring. Различные подходы включают в себя:

  • Из веб-приложения (или Spring Initializr) на официальном сайте Spring.
  • Создание вручную структуры каталогов проекта и спецификаций сборки.
  • С помощью набора инструментов Spring.
  • Из командной строки с интерфейсом командной строки Spring Boot.
  • С Eclipse IDE.
  • С интегрированной средой разработки IntelliJ IDEA.

Самый популярный подход — Spring Initializr:

Как вы можете видеть на изображении выше, вам нужно будет принять несколько решений. Во-первых, это тип проекта, который вы хотите инициализировать. Spring предоставляет три варианта: Gradle для Groovy, Gradle для Kotlin или Maven. В этом примере приложения будет использоваться проект Maven.

Другие параметры, которые вы должны выбрать, — это язык (Java), версия Spring Boot, которую вы хотите использовать, и метаданные проекта. В пяти полях Spring уже есть фиктивные данные, которые помогут вам создать пример приложения. Однако вам нужно будет обновить эти поля данными, специфичными для проекта, поскольку эти метаданные будут описывать ваше приложение Spring, включая компоненты Spring и их методы.

Затем вам нужно выбрать упаковку, в которой вы хотите хранить файлы (jar или war). Затем вы можете выбрать версию Java, установленную на вашем устройстве. Последнее решение, которое вам нужно принять, — это тип зависимостей, которые вы хотите использовать в своем приложении.

Spring предоставляет несколько зависимостей, которые вы можете использовать для добавления свойств в ваше приложение. Чтобы добавить новую зависимость в ваше приложение, просто нажмите кнопку добавления зависимостей справа от файла Spring Initializr. Это действие создаст следующее наложение на вашем экране:

Для этого примера приложения вам потребуется только одна зависимость — Spring Web. Эта зависимость позволяет создавать веб-приложения с использованием архитектуры MVC. После того, как вы выбрали все зависимости, которые хотите использовать в своем приложении, нажмите «Генерировать». Это загрузит шаблон проекта для вас.

Теперь у вас есть проект Spring Boot (одна из библиотек Spring). Последний шаг — импортировать проект в предпочтительную IDE. Ваш проект Spring будет иметь следующую структуру проекта:

Это обычная структура проекта Maven, и есть несколько важных файлов, с которыми вам нужно ознакомиться.

  • Pom.xml: содержит данные конфигурации приложения Spring.
  • OnlineShopaholicsApplication.java: это основной класс Spring Boot, который выполняет приложение.
  • OnlineShopaholicsApplicationTest.java: это JUnit-тест класс, обеспечивающий правильную загрузку контекста приложения Spring (или контейнера).

Запуск приложения Spring

Класс начальной загрузки Spring, который в данном случае является классом OnlineShopaholicsApplication, имеет следующий исходный код:

упаковка ком.онлайншопоголики;

Импортироватьорганизация.спрингфреймворк.ботинок.SpringApplication;
Импортироватьорганизация.спрингфреймворк.ботинок.автоконфигурация.SpringBootApplication;

@SpringBootApplication
публичныйсортOnlineShopaholicsПриложение{
публичныйстатическийпустотаосновной(строка [] аргументы){
SpringApplication.run(OnlineShopaholicsApplication.сорт, аргументы);
}
}

Одним из наиболее важных аспектов приведенного выше кода является @SpringBootApplication аннотацию, которая представляет собой составную аннотацию, которая позволяет вашему приложению получить доступ к функциям трех других аннотаций:

  • @EnableAutoconfiguration: эта аннотация включает автоматическую настройку Spring Boot. Это означает, что он сообщает Spring boot настроить любой компонент, который, по его мнению, потребуется вашему приложению для работы.
  • @ComponentScan: эта аннотация позволяет включить сканирование компонентов. Эта функция важна, она позволяет Spring автоматически обнаруживать и регистрировать другие аннотированные компоненты для использования контекстом приложения Spring (или контейнером).
  • @SpringBootConfiguration: это специализированная форма аннотации @Configureation, которая позволяет вам регистрировать bean-компоненты (или объекты) в контексте приложения Spring.

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

упаковка ком.онлайншопоголики;

Импортироватьорганизация.спрингфреймворк.ботинок.SpringApplication;
Импортироватьорганизация.спрингфреймворк.ботинок.автоконфигурация.SpringBootApplication;
Импортироватьорганизация.спрингфреймворк.веб.связывать.аннотация.GetMapping;
Импортироватьорганизация.спрингфреймворк.веб.связывать.аннотация.RequestParam;
Импортироватьорганизация.спрингфреймворк.веб.связывать.аннотация.Рестконтроллер;

@SpringBootApplication
@RestController
публичныйсортOnlineShopaholicsПриложение{
публичныйстатическийпустотаосновной(строка [] аргументы){
SpringApplication.run(OnlineShopaholicsApplication.сорт, аргументы);
}

@GetMapping("/клиент")
публичный Нить Добро пожаловать(@RequestParam (значение = "имя", значение по умолчанию = "Клиент") Нить имя) {
возвращатьсяНить.формат("Добро пожаловать, %s!", имя);
}
}

Приложение Spring Boot теперь имеет три новых аннотации:

  • @RestController: эта аннотация помечает класс как контроллер, поэтому каждый метод в классе выше (кроме main()) будет возвращать объект домена вместо представления.
  • @GetMapping: эта аннотация сопоставляет HTTP-запросы GET с определенными методами заголовка. Итак, каждый раз, когда вы создаете запрос «/customer» в браузере, метод Welcome() будет обрабатывать запрос, возвращая строковое значение.
  • @RequestParam: эта аннотация указывает, что параметр метода должен быть привязан к параметру веб-запроса.

С обновленным кодом ваш Spring OnlineShopaholicsПриложение теперь имеет страницу клиента, которую вы можете просмотреть в своем браузере. Выполнение приложения запустит сервер и выведет вывод на консоль.

В выводе много важной информации. Он сообщает вам, что сервер работает, сообщает, сколько времени занял процесс инициализации, и сообщает вам, на каком порту работает приложение (по умолчанию 8080). Поэтому, если вы перейдете к http://localhost: 8080/клиент вы увидите следующий вывод в своем браузере:

Теперь вы можете создать свой вид приложения

Еще один важный файл в структуре проекта, на который вы могли обратить внимание, — это шаблоны папка. В идеале OnlineShopaholicsПриложение class должен служить контроллером, который обрабатывает запросы для разных представлений. Поэтому в законченном приложении класс контроллера не должен содержать текст, который будет отображаться в представлении его запроса.

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