この時期、私はSpringFrameworkを勉強しています。
今、私は春のBeanのライフサイクルについて、特にBeanの初期化と破壊について研究しています。このチュートリアルを読んでいます。
http://www.tutorialspoint.com/spring/spring_bean_life_cycle.htm
私は前の記事で提案された例を実装しましたが、この議論には疑問があります。
この例では、 HelloWorld.javaとMainApp.javaの2つのクラスしかありません。
HelloWorld.javaクラスには、Beanの初期化のための2つのメソッドがあります。init ()(Beanの作成後にフレームワークによって呼び出されます)とBeanのクリーンアップのために:* destroy()(Beanの破棄前にフレームワークによって呼び出されます)アプリケーションの最後に)
わかりました。これは明らかです。これらの2つのメソッドは、Beanライフサイクルの2つの特定の瞬間にフレームワークによって自動的に呼び出されます。これは、 init- method属性とdestroy-method属性によってアプリケーションコンテキストxmlファイル内でこのBeanを削除したためです。
<bean id="helloWorld"
class="org.andrea.myexample.myInitDestroyExample.HelloWorld"
init-method="init" destroy-method="destroy">
<property name="message" value="Hello World!"/>
</bean>
これは私には明らかです。
私が理解するのにいくつかの問題があるのは、前の記事の冒頭に関連しています。実際、初期化メソッドを使用するには、BeanがInitializingBeanインターフェイスとそのメソッドのコードを実装する必要があることを示しています。afterPropertiesSet ()
そして、Beanのクリーンアップを実行するために(これが削除される前に)、私のBeanはDisposableBeanインターフェースとそのメソッドのコードを実装する必要があります:destroy()
わかりました...だから...なぜ私のBeanはこれらのインターフェースを実装する必要があることを最初に示し、次にこの例では、このことを行わず、XML構成でinitとdestroyメソッドの存在を宣言するだけですインターフェイスを実装していないクラス内に実装しますか?
Tnx