[03] Main Application Class


🌻 Main Application Class


MainアプリケーションクラスはSpringBootアプリケーションを実行する主なメソッドを呼び出します.mainメソッドはJavaルールに従うアプリケーションエントリポイントの標準メソッドです.mainメソッドでSpringApplicationクラスを呼び出すrunメソッドは、Embedded Tomcatを実行し、SpringIoCコンテナを初期化します.
@SpringBootApplication
public class MyApplication {

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

}
Main Application Classは、他のクラスよりも最上位のRoot Packageに適しています.

🌻 @SpringBootApplication


@SpringBootアプリケーション宣言には、次の3つの宣言機能があります.
  • @Confiuration
  • @EnableAutoConfiguration
  • @ComponentScan
  • @SpringBootApplication // same as @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan
    public class MyApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
        }
    
    }

    🌻 Configuration Class


    Spring Bootは、XMLファイルではなくJavaベースのファイルを構成することを推奨し、主にマスターメソッドを定義するMain Applicationクラスからデフォルト@Configurationクラスを構成します.
    構成クラスは、複数のクラスから構成され、次の2つの方法でロードできます.
  • @Import:ロードする構成クラスを示します.
  • @Import(TestConfig.class)
    @Configuration
    public class MyConfig {
        ...
    }
  • @ComponentScan:@Configurationは、構成宣言を各構成クラスに割り当て、コンポーネントスキャン機能によって自動的に構成を設定します.
  • 🌻 自動設定


    Spring Boot自動構成は、Springアプリケーションをクラスパスに追加するjarライブラリ自動構成に基づいています.自動構成を使用するには、@SpringBootApplicationまたは@EnableAutoConfiguration宣言を@Configurationクラスのクラスに追加します.
    自動構成は侵入せず,開発者自身が定義した構成を侵害しない.たとえば、開発者がDataSource空を追加した場合、SpringBoot自動構成のデフォルトのEmbedded DataBaseサポートはキャンセルされます.現在自動構成されているアプリケーションを表示するには、--debugオプションを使用してSpringアプリケーションを起動します.
    一部の自動構成クラスを適用しない場合は、excludeプロパティを使用します.
    @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
    public class MyApplication {
       ...
    }
    また、プロファイルのspring.autoconfigure.excludeプロパティとして除外することもできます.

    🌻 Spring Bean & Dependency Injection


    Spring beanとそれらの依存性注入を定義するには、Spring Framework標準技術を使用しても関係ありませんが、@ComponentScan宣言の空白を検索し、依存性を接続するには、コンストラクション関数注入を使用することをお勧めします.
    @ComponentScan宣言は、すべてのアプリケーションコンポーネント(@Component、@Service、@Repository、@Controllerなど)をSpring beanとして自動的に登録します.
    依存性注入には3つの方法がある.

    1)注入構造関数(構造関数注入)


    Spring Beanにコンストラクション関数が1つしかない場合は、@Autowired構文は必要ありません.@Autowired言語宣言は、2つ以上の作成者の場合にのみ貼り付けられます.
    @Service
    public class MyAccountService implements AccountService {
    
        private final RiskAssessor riskAssessor;
    
        public MyAccountService(RiskAssessor riskAssessor) {
            this.riskAssessor = riskAssessor;
        }
    
        // ...
    
    }

    2)現場注入(現場注入)


    @Autowired arnolationをフィールドに貼り付けます.
    @Service
    public class MyAccountService implements AccountService {
    
        @Autowired
        private RiskAssessor riskAssessor;
    
        // ...
    
    }

    3)注入修正者(setter注入)


    @Autowired arnolationを[修正者](Setter)に貼り付けます.
    @Service
    public class MyAccountService implements AccountService {
    
        private RiskAssessor riskAssessor;
    
        @Autowired
        public void setRiskAssessor(RiskAssessor riskAssessor) {
            this.riskAssessor = riskAssessor;
        }
    
        // ...
    
    }

    🍄 次に、開発者ツールを見てみましょう。開発に役立つ機能を提供します。