Рубрики
Без рубрики

Поддержка весенней загрузки для jOO

Краткое руководство по поддержке весенней загрузки для jOO

Автор оригинала: baeldung.

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 .