Русский
Русский
English
Статистика
Реклама

Перевод Настройка Spring Data JPA с помощью Spring Boot

До Spring Boot разработки вам нужно сделать несколько вещей, чтобы настроитьSpring Data JPA.Вам не только нужно было аннотировать свои классы сущностей с помощью аннотаций преобразования, добавить Spring Data JPA зависимость и настроить соединение с базой данных.Вам также нужно включить репозитории и управление транзакциями и настроить EntityManagerFactory.Это - повторяющаяся и раздражающая задача.

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

В этой статье объясняется конфигурация Spring Boot по умолчанию для Spring Data JPA, какие параметры конфигурации вы можете использовать для ее изменения, а также конфигурацию, которую вы, возможно, захотите добавить.

Обязательные зависимости

Прежде чем вы сможете приступить к настройке Spring Data JPA, вам необходимо добавить его в свое приложение.В приложении Spring Boot это обычно означает, что вам нужно добавить правильный стартер в зависимости вашего проекта.Самый простой способ сделать это для нового проекта - использоватьSpring Initializrдля настройки процесса сборки и добавления всех необходимых зависимостей.Для всех проектов Spring Boot вам необходимо добавитьмодульspring-boot-starter-data-jpa.

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>

Вам также необходимо добавить зависимость JDBC драйвера для конкретной базы данных.В следующих примерах выполняется подключение к базе данных PostgreSQL и, следовательно, потребуется зависимость от JDBC драйвера PostgreSQL.

<dependency>    <groupId>org.postgresql</groupId>    <artifactId>postgresql</artifactId>    <version>${postgresql.version}</version></dependency>

Конфигурация по умолчанию

Как упоминалось ранее, интеграция Spring Boot со Spring Data JPA обеспечивает обширную конфигурацию по умолчанию и добавляет большинство необходимых зависимостей в ваш проект.Она включает в себя:

  • зависимость отпуласоединенийHikariCPи базовой конфигурации по умолчанию.Вы можете установить все параметры конфигурации HikariCP вфайлеapplication.properties, добавив префиксspring.datasource.hikariк имени параметра.

  • создание базы данных в памяти H2, HSQL или Derby, если ваш путь к классам содержит соответствующий драйвер JDBC.

  • зависимость от Hibernate в качестве вашей реализации JPA и требуемую конфигурацию для создания экземпляраEntityManagerFactory.

  • зависимость и необходимая конфигурация для управления вашими транзакциями с помощью встроенного менеджера транзакций Atomikos.

  • необходимая конфигурация для использования репозиториев Spring Data JPA.

Примечание: поскольку Spring Data JPA использует Hibernate в качестве реализации JPA по-умолчанию, вы можете использоватьвсе, что вы знаете о Hibernate, со Spring Data JPA.

Как видите, это в основном все, что вам ранее приходилось настраивать в своем классе конфигурации.Вот почему большинство проектов предпочитают использовать Spring Boot классическому Spring.

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

Большинство корпоративных приложений используют автономную базу данных, например,сервер базы данныхPostgreSQLили Oracle.В этом случае вам нужно только предоставить URL-адрес, имя пользователя и пароль для подключения к этой базе данных.Вы можете сделать это, установив следующие 3 свойства конфигурации вфайлеapplication.properties.

spring.datasource.url=jdbc:postgresql://localhost:5432/testspring.datasource.username=postgresspring.datasource.password=postgres

Настройка конфигурации по умолчанию

Просто потому, что Spring Data JPA автоматически интегрирует несколько других проектов Spring и настраивает их для вас, вы не обязаны их использовать.Вы можете легко изменить поведение и интеграцию по умолчанию, указав различные зависимости и добавив несколько параметров в свою конфигурацию.

Использование другого пула подключений

По умолчанию Spring Boot добавляет зависимость к HikariCP и настраивает ее.Вы можете использовать другой пул соединений, исключив HikariCP из зависимостей вашего проекта.

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-jpa</artifactId>    <exclusions>        <exclusion>            <groupId>com.zaxxer</groupId>            <artifactId>HikariCP</artifactId>        </exclusion>    </exclusions></dependency>

Затем Spring Boot пытается найти следующие реализации пула соединений в описанном порядке в пути к классам и использует первую из найденных:

  • Пул соединений Tomcat,

  • Commons DBCP2,

  • Oracle UCP.

Если вы не хотите полагаться на сканирование пути к классам вашего приложения, вы также можете явно указать пул соединений, настроив свойство spring.datasource.type.

spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource

После того, каквы изменили пул соединений, вы можете установить все свои стандартные параметры конфигурации вapplication.propertiesфайл путем добавления префикса spring.datasource.tomcat, spring.datasource.dbcp2 или spring.datasource.oracleucp с именем параметра.

Использование Bitronix Transaction Manager

В прошлом Bitronix был популярным менеджером транзакций в приложениях Spring.Поддержка Spring Boot для него устарела и будет удалена в будущем.

Если вы все еще хотите его использовать, вы можете добавить в свое приложение зависимость отspring-boot-starter-jta-bitronix.Затем Spring Boot будет включать все необходимые зависимости и настраивать Bitronix для управления вашими транзакциями.

Деактивация репозиториев Spring Data JPA

Я рекомендую использовать репозитории Spring Data JPA.Они значительно упрощают реализацию вашей персистентности, предоставляя набор стандартных методов для сохранения, чтения и удаления сущностей.Они также предоставляют такие функции, какпроизводныеинастраиваемые запросы.

Если вы решите не использовать эти функции, вы можете деактивировать все репозитории JPA в своей конфигурации.

spring.data.jpa.repositories.enabled=false

Дополнительный параметр конфигурации, который вы должны знать

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

Настройка ведения журнала

Как объясняется в Руководстве по ведению журнала Hibernate рекомендовано использовать 2 разные конфигурации ведения журнала для среды разработки и рабочей среды.Это, конечно, меняется не при настройке Spring Data JPA.Используя Spring Boot, вы можете настроить уровни журнала для всех категорий Hibernate вфайлеapplication.properties, добавив префиксlogging.levelк имени категории журнала.

Конфигурация среды разработки

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

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

logging.level.org.hibernate=INFOlogging.level.org.hibernate.SQL=DEBUGlogging.level.org.hibernate.cache=DEBUGlogging.level.org.hibernate.stat=DEBUG

Она активирует статистический компонент Hibernate.Он предоставляет вам сводную информацию о количестве и времени, затраченном Hibernate на выполнение наиболее важных операций во время каждого сеанса.Он также добавляет все выполненные операторы SQL в файл журнала и показывает, как Hibernate использовал кеш 2-го уровня.

Spring Boot также поддерживает параметр spring.jpa.show-sql, чтобы включить ведение журнала операторов SQL.Но вам лучше избегать этого, по2тому что он игнорирует вашу структуру ведения журнала и записывает операторы SQL непосредственно в стандартный вывод.

Конфигурация рабочей среды

В рабочей среде вы должны установить уровень журнала Hibernate на ERROR, чтобы сократить накладные расходы как можно меньше.

logging.level.org.hibernate=ERROR

Настройка свойств JPA и Hibernate

Когда вы используете JPA и Hibernate без Spring Data JPA, вы обычно настраиваете его с помощьюфайлаpersistence.xmlэлементе свойствэтого XML-файла вы можете указать параметры конфигурации, зависящие от поставщика.

Вы можете установить все эти параметры вфайлеapplication.properties, добавив префиксspring.jpa.propertiesк имени свойства конфигурации.

spring.jpa.properties.hibernate.generate_statistics=true

Настройка создания базы данных

По умолчанию Spring Boot автоматически создает для вас базы данных в памяти.Эта функция отключена для всех остальных баз данных.Вы можете активировать ее, установив для свойстваspring.jpa.hibernate.ddl-auto значения: none,validate,updateилиcreate-drop.

Рекомендуетсявместо этогоиспользоватьSpring Boot's Flyway или интеграцию с Liquibase.Они более мощные и дают вам полный контроль над определением структур ваших таблиц.

Вывод

Spring Boot стартер для Spring Data JPA добавляет в ваше приложение наиболее распространенные зависимости и разумную конфигурацию по умолчанию.Единственное, что вам нужно добавить, это информацию о подключении к вашей базе данных.

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

Источник: habr.com
К списку статей
Опубликовано: 28.03.2021 14:14:21
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Java

Spring data jpa

Spring boot

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru