🥦

【Spring Boot】SpringBootApplication とは

2024/10/13に公開
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication //こいつ
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Spring Initializrで生成したプロジェクトから開くとよく目にする@SpringBootApplication。
このアノテーションがSpring Boot アプリケーションのメイン クラスによく配置される便利なアノテーションで、簡単にまとめると、複数のアノテーションを 1 つの簡潔なアノテーションにまとめることで、Spring Boot アプリケーションのブートストラップと構成などが簡単になる。
また、@SpringBootApplicationアノテーションを使用して3つの機能を有効にできる。

機能

@EnableAutoConfiguration:
このアノテーションは、アプリケーションが[1]クラスパスに基き、アプリケーションを自動的に設定するようSpring Bootに指示。
例えば、特定のライブラリ(例:tomcat)が存在する場合、それに関連する@Beanが自動的に設定され実行される。

@ComponentScan:
このアノテーションは、@Component、@Service、@Repository、@Controllerなどの付けられたクラスが含まれるパッケージをスキャンすることで、自動的に@Beanをアプリケーションコンテキストに登録できる。

@Configuration:
@Bean[2]を定義することで、追加の@Beanを登録したり設定クラスをインポートできるようにする

脚注
  1. Javaプログラムが実行時にクラスファイルやライブラリを検索するためのパスの集合のこと ↩︎

  2. @Beanで書かれたメソッドは、インスタンス化したクラスを返し、DIコンテナに登録される。また、他の@Beanメソッドを呼び出すことができます ↩︎

Discussion