[Java] Настройка Spring Data JPA с помощью Spring Boot (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
До 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/test
spring.datasource.username=postgres
spring.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=INFO
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.cache=DEBUG
logging.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
===========
===========
Автор оригинала: Thorben Janssen
===========Похожие новости:
- [Java, C++, Go] Внимание: все сервисы Bintray будут прекращены, а ваши учетные записи будут отключены 1 мая 2021 года. — JFrog
- [Разработка веб-сайтов, JavaScript, Angular, TypeScript] Семилетними шагами: миграция с JSP + Angular JS на Angular 2+
- [Open source, Виртуализация, Разработка под Linux, Разработка на Raspberry Pi] Шпаргалка по Linux grep, домашний термостат на Raspberry Pi, эл. книга «Ansible for DevOps» и PostgreSQL на Linux
- [Java, Администрирование баз данных, DevOps] Версионирование структуры БД при помощи Liquibase
- [Java, Разработка под Android, Kotlin] Уже сегодня Android MeetUp: VK, Leroy Merlin, FindMyKids, Кухня на районе
- [Программирование, Java, Параллельное программирование, Конференции] Обзор программы JPoint 2021: воркшопы, Spring, «игра вдолгую»
- [Программирование, Java] Удаленный доступ к IDE при помощи Projector
- [Java, API] Сбор метрик Spring Boot приложения c помощью Prometheus и Grafana
- [Разработка веб-сайтов, JavaScript, ООП, ReactJS, TypeScript] Еще один подход к построению архитектуры на фронте
- [Ненормальное программирование, Разработка веб-сайтов, Программирование, Haskell] Зачем мы транспилируем Haskell в JavaScript
Теги для поиска: #_java, #_spring_data_jpa, #_spring_boot, #_java
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 12:10
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
До 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> <dependency>
<groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>${postgresql.version}</version> </dependency>
Примечание: поскольку Spring Data JPA использует Hibernate в качестве реализации JPA по-умолчанию, вы можете использовать все, что вы знаете о Hibernate, со Spring Data JPA.
spring.datasource.url=jdbc:postgresql://localhost:5432/test
spring.datasource.username=postgres spring.datasource.password=postgres <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.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
spring.data.jpa.repositories.enabled=false
logging.level.org.hibernate=INFO
logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.cache=DEBUG logging.level.org.hibernate.stat=DEBUG logging.level.org.hibernate=ERROR
spring.jpa.properties.hibernate.generate_statistics=true
=========== Источник: habr.com =========== =========== Автор оригинала: Thorben Janssen ===========Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 12:10
Часовой пояс: UTC + 5