IOCの初期化とカスタムメソッドの実行

(1)CommandLineRunnerインターフェースを実装します

開発中にそのような状況が発生する可能性があります。一部のコンテンツは、コンテナの起動時に実行する必要があります。たとえば、構成ファイル、データベース接続などを読み取ります。SpringBootは、この要求を達成するのに役立つ2つのインターフェイスを提供します。これらの2つのインターフェースは、CommandLineRunnerとApplicationRunnerです。それらの実行タイミングは、コンテナーが開始されたときです。
これらの2つのインターフェースにはrunメソッドがあり、このメソッドを実装するだけで済みます。2つのインターフェイスの違いは、ApplicationRunnerのrunメソッドのパラメータがApplicationArgumentsであるのに対し、CommandLineRunnerインターフェイスのrunメソッドのパラメータはStringの配列であるということです。以下に、これら2つのインターフェイスの実装を確認するための2つの簡単な例を示します。

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;


@Component
public class TestImplCommandLineRunner implements CommandLineRunner {
    
    


    @Override
    public void run(String... args) throws Exception {
    
    

        System.out.println("<<<<<<<<<<<<这个是测试CommandLineRunn接口>>>>>>>>>>>>>>");
    }
}

(2)ApplicationRunnerインターフェースを実装する

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;


@Component
public class TestImplApplicationRunner implements ApplicationRunner {
    
    


    @Override
    public void run(ApplicationArguments args) throws Exception {
    
    
        System.out.println(args);
        System.out.println("这个是测试ApplicationRunner接口");
    }
}

@Orderアノテーション
複数の実装クラスがあり、それらを特定の順序で実行する必要がある場合は、@ Orderアノテーションを実装クラスに追加できます。@Order(value = integer value)。SpringBootは、@ Orderの値に応じて小さいものから大きいものへと実行されます。

(3)初期化メソッドに@PostConstructアノテーションを追加します

初期化メソッドには@PostConstructアノテーションが付けられています。クラスで必要な場合は、Beanに注意してください。

import javax.annotation.PostConstruct;
 
import org.springframework.stereotype.Component;
 
 
@Component
public class MyTest{
    
    
	@PostConstruct
	public void test() throws Exception {
    
    
	 System.out.println("PostConstruct");
	}

}

(4)静的コードブロック

Javaの基本的な文法ですが、同じことがSpringにも当てはまります。

static{
    
    
 XXX
}

(5)@Beanを使用して独自の定義済みBeanを作成し、起動時に関連プログラムを実行します

 @Bean
  public XXXX beanName() {
    
    
       //自定义Bean属性
      return XXXX;
  }

おすすめ

転載: blog.csdn.net/Octopus21/article/details/111083728