1. 概要

このチュートリアルでは、@SpringBootConfigurationアノテーションについて簡単に説明します。 Spring Bootアプリケーションでの使用法についても見ていきます。

2. SpringBootアプリケーションの構成

@SpringBootConfigurationは、SpringBootフレームワークの一部であるクラスレベルのアノテーションです。 は、クラスがアプリケーション構成を提供することを示します。

Spring Bootは、Javaベースの構成を優先します。 その結果、 @SpringBootConfiguration アノテーションは、アプリケーションでの構成の主要なソースになります。 一般に、 main()メソッドを定義するクラスは、このアノテーションの適切な候補です。

2.1. @SpringBootConfiguration

ほとんどのSpringBootは、 @SpringBootConfiguration via @SpringBootApplication を使用します。これは、それを継承するアノテーションです。 アプリケーションが@SpringBootApplicationを使用している場合、そのアプリケーションはすでに@SpringBootConfigurationを使用しています。

アプリケーションでの@SpringBootConfigurationのの使用法を見てみましょう。

まず、構成を含むアプリケーションクラスを作成します。

@SpringBootConfiguration
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public PersonService personService() {
        return new PersonServiceImpl();
    }
}

@SpringBootConfiguration アノテーションは、Applicationクラスにアノテーションを付けます。 これは、クラスに@Bean定義メソッドがあることをSpringコンテナに示します。 つまり、依存関係をインスタンス化して構成するメソッドが含まれています。

たとえば、 Application クラスには、 PersonServiceBeanのBean定義メソッドが含まれています。

さらに、コンテナは構成クラスを処理します。 これにより、アプリケーション用のBeanが生成されます。 その結果、@Autowired@Injectなどの依存性注入アノテーションを使用できるようになりました。

2.2. @SpringBootConfiguration@Configuration

@SpringBootConfiguration は、@Configurationアノテーションの代替です。 主な違いは、 @SpringBootConfiguration を使用すると、構成を自動的に見つけることができることです。 これは、ユニットテストまたは統合テストに特に役立ちます。

アプリケーションに対しては@SpringBootConfigurationまたは@SpringBootApplicationを1つだけ持つことをお勧めします。 ほとんどのアプリケーションは、単に@SpringBootApplication。を使用します。

3. 結論

この記事では、@SpringBootConfigurationアノテーションについて簡単に説明しました。 さらに、SpringBootアプリケーションでの@SpringBootConfigurationの使用法を調べました。 Springの@Beanアノテーションも確認しました

ここでの例の完全なソースコードは、いつものように、GitHub上にあります。