«Содержание
- Overview
- Basic Spring Dependencies with Maven
- Spring Persistence with Maven
- Spring MVC with Maven
- Spring Security with Maven
- Spring Test with Maven
- Using Milestones
- Using Snapshots
- Conclusion
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 Persistence — в основном 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- веб-зависимость содержит общие веб-утилиты для сред сервлетов и портлетов, а spring-webmvc включает поддержку MVC для сред сервлетов.
Поскольку spring-webmvc имеет зависимость spring-web, явное определение spring-web не требуется при использовании spring-webmvc.
Начиная с Spring 5.0, для поддержки веб-фреймворка с реактивным стеком мы можем добавить зависимость для Spring WebFlux:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webflux</artifactId>
<version>${org.springframework.version}</version>
</dependency>
5. Spring Security With Maven
Зависимости Security Maven подробно обсуждаются в Spring Безопасность с помощью статьи Maven.
6. Spring Test с 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 в проекте.