1

プロジェクトでいくつかの一般的な構成を一元化するために、独自のスプリング ブート スターターを作成しています。スプリング ブート アプリに次のような特定の方法で注釈が付けられている場合にのみ、 @Configuration クラスを一致させたいと思います。

@SpringBootApplication
@EnableResourceServer
public class MyApplication {
...

@ConditionalOnClass を使用する場合:

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

アプリがリソース サーバーではない (注釈が存在しない) 場合でも、依存関係が使用されると自動構成が一致しました。

スプリング ブート アプリに特定の注釈が存在する場合にのみ一致する条件はありますか?

4

1 に答える 1

2

最も簡単な方法は

  1. @Import アノテーションを @EnableResourceServer アノテーション クラスに追加し、構成クラスに渡します。
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(ResourceServerAutoConfiguration.class)
public @interface EnableResourceServer {
}
  1. spring.factories ファイルの自動構成ブロックから ResourceServerAutoConfiguration を削除して、自動構成されないようにします。

これにより、注釈が存在する場合にのみ構成がロードされるはずです。

@SpringBootApplication
@EnableResourceServer
public class NotificationAdapterApplication {
}
于 2019-07-06T18:42:59.537 に答える