1. Обзор
Этот учебник является продолжением Введение в jOO с весенней статьей, охватывающих пути, которые jOO можно использовать в приложении Spring Boot.
Если вы еще не прошли через этот учебник, пожалуйста, взгляните на него и следуйте инструкциям в разделе 2 о Maven зависимостей и в разделе 3 о поколении кода. Это позволит создать исходный код для классов Java, представляющих таблицы в базе данных выборки, включая Автор , Книжный и АвторКнига .
2. Конфигурация Maven
В дополнение к зависимостям и плагинам, как и в предыдущем учебнике, несколько других компонентов должны быть включены в файл Maven POM, чтобы сделать работу jOO с Spring Boot.
2.1. Управление зависимостью
Наиболее распространенным способом использования весенней загрузки является унаследовать от весна-загрузка-стартер-родитель проекта, объявив его в родительские элемент. Тем не менее, этот метод не всегда подходит, поскольку он налагает цепочку наследования следовать, которые не могут быть то, что пользователи хотят во многих случаях.
В этом учебнике используется другой подход: делегирование управления зависимостью в Spring Boot. Чтобы это произошло, просто добавляет следующее зависимостьУкоминие элемент файла POM:
org.springframework.boot spring-boot-dependencies 2.2.6.RELEASE pom import
2.2. Зависимости
Для того, чтобы весенняя загрузка контролировала jOO, зависимость от весна-загрузка-стартер-jooq артефакт должен быть объявлен:
org.springframework.boot spring-boot-starter-jooq 2.2.6.RELEASE
Обратите внимание, что эта статья посвящена распределению jOO с открытым исходным кодом. Если вы хотите работать с коммерческими дистрибутивами, ознакомьтесь с Руководство по использованию коммерческих дистрибутивов jOO с весенней загрузкой на официальном блоге.
3. Весенняя конфигурация загрузки
3.1. Первоначальная загрузка Config
Прежде чем мы доберемся до поддержки jOO, мы собираемся начать готовить вещи с Spring Boot.
Во-первых, мы собираемся воспользоваться поддержкой настойчивости и улучшениями в Boot и нашей информации о доступе к данным в стандартной application.properts файл. Таким образом, мы можем пропустить определение бобов и сделать их настраиваемыми через отдельный файл свойств.
Мы добавим URL и учетные данные здесь, чтобы определить нашу встроенную базу данных H2:
spring.datasource.url=jdbc:h2:~/jooq spring.datasource.username=sa spring.datasource.password=
Мы также собираемся определить простое приложение Boot:
@SpringBootApplication @EnableTransactionManagement public class Application { }
Мы оставим это простым и пустым, и мы определим все другие объявления фасоли в другом классе конфигурации – Начальнаяконфигурация .
3.2. Конфигурация фасоли
Теперь определим эту Начальнаяконфигурация класс:
@Configuration public class InitialConfiguration { // Other declarations }
Весенняя загрузка автоматически генерирует и настраивает данныеИсточник фасоль на основе свойств, установленных в application.properts файл, поэтому нам не нужно регистрировать его вручную. Следующий код позволяет автоматически настроить ДанныеИсточник фасоли, которые будут введены в поле, и показывает, как эта фасоль используется:
@Autowired private DataSource dataSource; @Bean public DataSourceConnectionProvider connectionProvider() { return new DataSourceConnectionProvider (new TransactionAwareDataSourceProxy(dataSource)); }
С фасоли по имени транзакцияМенеджер также был автоматически создан и настроен Spring Boot, нам не нужно объявлять какие-либо другие бобы DataSourceTransactionManager ввих, как в предыдущем учебнике, чтобы воспользоваться поддержкой транзакций Spring.
DSLContext фасоль создается так же, как и в НастойчивостьКонтекст класс предыдущего учебника:
@Bean public DefaultDSLContext dsl() { return new DefaultDSLContext(configuration()); }
Наконец, Конфигурация осуществление должно быть предоставлено DSLContext . Так как Spring Boot способен распознавать диалект S’L, который используется через существование артефакта H2 на classpath, конфигурация диалекта больше не нужна:
public DefaultConfiguration configuration() { DefaultConfiguration jooqConfiguration = new DefaultConfiguration(); jooqConfiguration.set(connectionProvider()); jooqConfiguration .set(new DefaultExecuteListenerProvider(exceptionTransformer())); return jooqConfiguration; }
4. Использование весенней загрузки с jOO
Чтобы сделать демонстрацию поддержки Spring Boot для jOO, легче следовать, тестовые случаи в приквеле этого учебника повторно используются с небольшим изменением его аннотации уровня класса:
@SpringApplicationConfiguration(Application.class) @Transactional("transactionManager") @RunWith(SpringJUnit4ClassRunner.class) public class SpringBootTest { // Other declarations }
Ясно, что вместо того, чтобы принять @ContextConfiguration аннотация, Весенняя загрузка использует @SpringApplicationConfiguration чтобы воспользоваться СпрингАппликацияКонтекстЗагрузчик контекстный погрузчик для тестирования приложений.
Методы тестирования для вставки, обновления и удаления данных точно такие же, как и в предыдущем учебнике. Пожалуйста, посмотрите на раздел 5 этой статьи об использовании jOO с весной для получения дополнительной информации. Все тесты должны быть успешно выполнены с новой конфигурацией, доказывая, что jOO полностью поддерживается Spring Boot.
5. Заключение
Этот учебник вырыли глубже в использовании jOO с весной. Она представила способы использования приложения Spring Boot для взаимодействия с базой данных безопасным шрифтом.
Реализация всех этих примеров и фрагментов кода можно найти в проект GitHub .