@PostConstructアノテーション
@PostConstructアノテーションSpringによって提供されていると多くの人が考えています。実際、Java独自のアノテーションです。
Javaでの注釈の説明:@PostConstructこの注釈は、非静的void()メソッドを変更するために使用されます。@PostConstructによって変更されたメソッドは、サーバーがサーブレットをロードするときに実行され、サーバーによって一度だけ実行されます。PostConstructは、コンストラクタの後、init()メソッドの前に実行されます。
通常、Springフレームワークで@PostConstructアノテーションを使用して、Bean初期化全体でアノテーションメソッドの順序を実行します。
コンストラクタ-> @Autowired(依存性注入)-> @PostConstruct(注釈付きメソッド)
@Configuration public class BeanConfiguration { @Bean public ToyFactory toyFactory(){ return new DefaultToyFactory(); } }
インターフェース
パブリック インターフェイスToyFactory { Toy createToy(); }
インターフェース実装クラス
パッケージcom.sixinshuier.Initialization.servive.impl; import com.sixinshuier.Initialization.entity.Toy; import com.sixinshuier.Initialization.servive.ToyFactory; import javax.annotation.PostConstruct; パブリック クラス DefaultToyFactory はToyFactoryを 実装します{ public DefaultToyFactory(){ System.out.println( "造器..." ); } // 1. @PostConstructに基づく注解 @PostConstruct public void init(){ System.out.println( "@PostConstruct:DefaultToyFactory初始化中..." ); } @オーバーライド public Toy createToy(){ Toy toy = new Toy(); toy.setName( "フットボール" ); toy.setSize( "big" ); おもちゃを返す; } }
メイン
パッケージcom.sixinshuier.Initialization.main; import com.sixinshuier.Initialization.config.BeanConfiguration; import com.sixinshuier.Initialization.entity.Toy; import com.sixinshuier.Initialization.servive.ToyFactory; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class PostConstructTest { public static void main(String [] args){ // 创建BeanFactory AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(); // 注TUTORIALConfiguration Class(配置类) applicationContext.register(BeanConfiguration。クラス); // Springアプリケーションコンテキスト起動 applicationContext.refreshを(); // ルックアップ依存 ToyFactory toyFactory applicationContext.getBean =(ToyFactory。のクラス); 玩具玩具 = toyFactory.createToy(); のSystem.out。 println( "ToyName:" + toy.getName()+ "ToySize:" + toy.getSize()); // Springアプリケーションコンテキストを閉じる applicationContext.close(); } }
出力結果
コンストラクター...
@PostConstruct:DefaultToyFactory Initializing ...
ToyName:Football ToySize:big
リファレンス:https://blog.csdn.net/qq360694660/article/details/82877222