[03] Main Application Class
9166 ワード
🌻 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つの宣言機能があります.
@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(TestConfig.class)
@Configuration
public class MyConfig {
...
}
🌻 自動設定
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;
}
// ...
}
🍄 次に、開発者ツールを見てみましょう。開発に役立つ機能を提供します。
Reference
この問題について([03] Main Application Class), 我々は、より多くの情報をここで見つけました https://velog.io/@pymin1012/03-Main-Application-Classテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol