Оглавление
- Обзор
- Основные зависимости Spring с Maven
- Spring Persistence с Maven
- Spring MVC с Maven
- Весенняя безопасность с Maven
- Весенний тест с Maven
- Использование вех
- Использование снимков
- Вывод
1. Обзор
В этом руководстве показано, как настроить зависимости Spring с помощью Maven . Последние выпуски Spring можно найти на Maven Central .
2. Основные зависимости Spring с Maven
Spring спроектирован так, чтобы быть очень модульным — использование одной части Spring не должно и не требует другой. Например, базовый контекст Spring может быть без библиотек Persistence или MVC Spring.
Давайте начнем с фундаментальной настройки Maven, которая будет использовать только зависимость spring -context
:
<properties>
<org.springframework.version>5.2.8.RELEASE</org.springframework.version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
<scope>runtime</scope>
</dependency>
Эта зависимость — spring-context
— определяет фактический Spring Injection Container и имеет небольшое количество зависимостей: spring-core
, spring-expression
, spring-aop
и spring-beans
. Они дополняют контейнер, обеспечивая поддержку некоторых основных технологий Spring : утилит Core Spring, языка выражений Spring (SpEL), поддержки аспектно-ориентированного программирования и механизма JavaBeans .
Обратите внимание, что мы определяем зависимость в области выполнения —
это гарантирует отсутствие зависимостей во время компиляции от каких-либо конкретных API Spring. Для более сложных вариантов использования область выполнения
может быть удалена из некоторых выбранных зависимостей Spring, но для более простых проектов нет необходимости компилировать Spring , чтобы в полной мере использовать инфраструктуру.
Также обратите внимание, что JDK 8 — это минимальная версия Java, необходимая для Spring 5.2. Он также поддерживает JDK 11 в качестве текущей ветки LTS и JDK 13 в качестве последней версии OpenJDK.
3. Spring Persistence с Maven
Давайте теперь посмотрим на постоянные зависимости Spring — в основном , spring-orm
:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
Это происходит с поддержкой Hibernate и JPA, таких как HibernateTemplate
и JpaTemplate
, а также с несколькими дополнительными зависимостями, связанными с сохранением: spring-jdbc
и spring-tx
.
Библиотека доступа к данным JDBC определяет поддержку Spring JDBC , а также JdbcTemplate
, а spring-tx
представляет чрезвычайно гибкую абстракцию управления транзакциями .
4. Spring MVC с Maven
Чтобы использовать поддержку Spring Web и Servlet, в pom
необходимо включить две зависимости , опять же в дополнение к основным зависимостям, указанным выше:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
Зависимость spring-web
содержит общие веб-утилиты для сред сервлетов и портлетов, а spring-webmvc
включает поддержку MVC для сред сервлетов.
Поскольку spring-webmvc
имеет зависимость spring -web, при использовании
spring-webmvc
явное определение spring-web
не требуется . ``
Начиная с Spring 5.0, для поддержки веб-фреймворка с реактивным стеком мы можем добавить зависимость для Spring WebFlux :
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webflux</artifactId>
<version>${org.springframework.version}</version>
</dependency>
5. Весенняя безопасность с Maven
Зависимости Security Maven подробно обсуждаются в статье Spring Security with Maven .
6. Весенний тест с Maven
Spring Test Framework можно включить в проект с помощью следующей зависимости:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
С Spring 5 мы также можем выполнять параллельное выполнение тестов .
7. Использование вех
Релизная версия Spring размещена на Maven Central. Однако, если проекту необходимо использовать веховые версии, в pom необходимо добавить собственный репозиторий Spring:
<repositories>
<repository>
<id>repository.springframework.maven.milestone</id>
<name>Spring Framework Maven Milestone Repository</name>
<url>http://repo.spring.io/milestone/</url>
</repository>
</repositories>
Как только этот репозиторий будет определен, проект может определить такие зависимости, как:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.0-M1</version>
</dependency>
8. Использование снимков
Как и вехи, моментальные снимки размещаются в пользовательском репозитории:
<repositories>
<repository>
<id>repository.springframework.maven.snapshot</id>
<name>Spring Framework Maven Snapshot Repository</name>
<url>http://repo.spring.io/snapshot/</url>
</repository>
</repositories>
После включения репозитория SNAPSHOT в файле pom.xml можно ссылаться на следующие зависимости:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.3.BUILD-SNAPSHOT</version>
</dependency>
А также — для 5.x:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.0-SNAPSHOT</version>
</dependency>
9. Заключение
В этой статье рассматриваются практические детали использования Spring с Maven . Представленные здесь зависимости Maven, конечно же, являются одними из основных, и некоторые другие, возможно, заслуживают упоминания и еще не вошли в список. Тем не менее, это должно стать хорошей отправной точкой для использования Spring в проекте.