Сообщения

Показаны сообщения с ярлыком "создание собственной автоконфигурации"

Spring Boot: создание собственной автоконфигурации, создание собственного стартера

Изображение
Полная версия Spring Boot для библиотеки может содержать следующие компоненты: Модуль autoconfigure, который содержит код автоконфигурации. Модуль starter, который обеспечивает зависимость для модуля автоматической настройки, а также библиотеки и любые дополнительные зависимости, которые обычно полезны. Короче говоря, добавление стартера должно обеспечить все необходимое для начала использования этой библиотеки. Вы можете объединить код автоконфигурации и управление зависимостями в одном модуле, если вам не нужно разделять эти две проблемы. Именование Вы должны убедиться, что предоставили правильное пространство имен для своего стартера. Не начинайте имена модулей со spring-boot, даже если вы используете другой Maven groupId. В будущем возможна официальная поддержка для вещи, которую вы автоматически настраиваете. Как правило, вы должны назвать комбинированный модуль как стартер. Например, предположим, что вы создаете стартер для "acme" назовите модуль автоконфигураци...

Spring Boot: создание собственной автоконфигурации, тестирование собственной автоконфигурации

Изображение
На автоконфигурацию могут влиять многие факторы: конфигурация пользователя (определение @Bean и настройка Environment), оценка состояния (наличие определенной библиотеки) и другие. Конкретно, каждый тест должен создавать четко определенный ApplicationContext, представляющий комбинацию этих настроек. ApplicationContextRunner предоставляет отличный способ достичь этого. ApplicationContextRunner обычно определяется как поле тестового класса для сбора базовой, общей конфигурации. В следующем примере показано, что UserServiceAutoConfiguration всегда вызывается: private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(UserServiceAutoConfiguration.class)); Если необходимо определить несколько автоконфигураций, нет необходимости упорядочивать их объявления, так как они вызываются в том же порядке, что и при запуске приложения. Каждый тест может использовать runner для представления конкретного варианта испол...

Spring Boot: создание собственной автоконфигурации, аннотации условий

Изображение
Вы почти всегда захотите включить одну или несколько аннотаций @Conditional в свой класс автоконфигурации. Аннотация @ConditionalOnMissingBean - это один из распространенных примеров, который позволяет разработчикам переопределять автоконфигурацию, если они недовольны вашими настройками по умолчанию. Spring Boot включает в себя ряд аннотаций @Conditional, которые вы можете повторно использовать в своем собственном коде, аннотируя классы @Configuration или отдельные методы @Bean. Эти аннотации включают в себя: Class Conditions (Условия класса) Bean Conditions (Условия компонента) Property Conditions (Условия свойства) Resource Conditions (Условия ресурса) Web Application Conditions (Условия веб-приложения) SpEL Expression Conditions (Условия выражения SpEL) Условия класса Аннотации @ConditionalOnClass и @ConditionalOnMissingClass позволяют включать классы @Configuration в зависимости от наличия или отсутствия определенных классов. Из-за того, что метаданные аннотации анализир...

Spring Boot: создание собственной автоконфигурации

Изображение
Если вы работаете в компании, которая разрабатывает общие библиотеки, или если вы работаете с открытой или коммерческой библиотекой, вы можете разработать собственную автоконфигурацию. Классы автоконфигурации могут быть объединены во внешние jar-файлы и по-прежнему поддерживаться Spring Boot. Автоконфигурирование может быть связано со стартером, который предоставляет код автоконфигурации, а также типичные библиотеки, которые вы будете использовать с ним. Понимание автоматически настроенных компонентов Под капотом автоконфигурация реализована с помощью стандартных классов @Configuration. Дополнительные аннотации @Conditional используются для ограничения необходимости применения автоконфигурации. Обычно классы автоконфигурации используют аннотации @ConditionalOnClass и @ConditionalOnMissingBean. Это гарантирует, что автоконфигурация применяется только тогда, когда соответствующие классы найдены и когда вы не объявили свою собственную @Configuration. Поиск автоконфигурации кандидатов ...