«Содержание

  1. Overview
  2. Basic Spring Dependencies with Maven
  3. Spring Persistence with Maven
  4. Spring MVC with Maven
  5. Spring Security with Maven
  6. Spring Test with Maven
  7. Using Milestones
  8. Using Snapshots
  9. 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 в проекте.