Как проверить, имеет ли приложение весенней загрузки определенную аннотацию в классе автоконфигурации - PullRequest
1 голос
/ 05 июля 2019

Я создаю собственный весенний загрузчик, чтобы централизовать некоторые общие конфигурации в моих проектах.Я хотел бы, чтобы мои классы @Configuration были сопоставлены только в том случае, если мое весеннее загрузочное приложение аннотировано определенным образом, например так:

@SpringBootApplication
@EnableResourceServer
public class MyApplication {
...

Когда я использую @ConditionalOnClass:

@Configuration
@ConditionalOnClass({EnableResourceServer.class})
class ResourceServerAutoConfiguration 

автоматическая конфигурация соответствует, когда используется зависимость, даже если приложение не является сервером ресурсов (аннотации нет).

Существует ли условие, которое соответствует только тогда, когда приложение весенней загрузки имеет определенную аннотациюнет?

1 Ответ

1 голос
/ 06 июля 2019

Я полагаю, что самым простым способом было бы

  1. Добавить аннотацию @Import к вашему классу аннотаций @EnableResourceServer и передать ваш класс конфигурации
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(ResourceServerAutoConfiguration.class)
public @interface EnableResourceServer {
}
Удалите ResourceServerAutoConfiguration из блока автоматической конфигурации файла spring.factories, чтобы он больше не конфигурировался автоматически.

Это должно привести к загрузке конфигурации только при наличии аннотации, т.е.

@SpringBootApplication
@EnableResourceServer
public class NotificationAdapterApplication {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...