ホームページ >Java >&#&チュートリアル >Java構成のdefault-lazy-init='true'構成について簡単に説明します。
以下のエディタでは、春のdefault-lazy-initパラメータとlazy-initについて簡単に説明します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターに従って、Spring 設定のルート ノードにdefault-lazy-init="true" 設定があります:
1 このパラメータ。遅延読み込みを表します。つまり、プロジェクトの開始時に必要でない限り、アノテーション付き Bean はプロジェクトの開始時にインスタンス化されません。インスタンス化されていないアノテーション オブジェクト は、プログラムが実際にアクセスするときにのみ呼び出しに挿入されます。 call
spring 起動時、default-lazy-init パラメータはデフォルトで false に設定され、初期化 ACTION 設定からサービス設定、dao 設定、さらにはデータベース接続に至るまで、オブジェクト インスタンス グラフ全体がデフォルトでロードされます。 、取引など。これにより、実行時の Web サーバーの負荷を軽減できますが、開発者にとっては非常に非効率な設定であることは間違いありません。
spring は、default-lazy-init 属性を提供します。その構成フォームは、applicationContext.xml で次のとおりです:
< beans default-lazy-init ="true" >
.......
</beans>
実際の開発では、default-lazy-init 属性を true に設定できます。これにより、プロジェクトの起動時間が大幅に短縮されます2. Spring の Lazy-init 属性と Abstract 属性
1. Lazy-init<beans>
<bean id="service1" type="bean路径" lazy-init="true"/>
<bean id="service2" type="bean路径" lazy-init="false">
<property name="service1" ref="service1"/>
</bean>
</beans>
上記の 2 つの Bean の 1 つは、lazy-init 属性です。 true ともう 1 つは false の違いは何でしょうか? そうですね
IoC コンテナーが開始すると、service2 はインスタンス化されますが、service1 はインスタンス化されません。なぜなら、service2 がそれを必要とするからです。つまり、lazy-init="true" の Bean は、IoC コンテナの起動時にインスタンス化されず、コンテナが使用する必要がある場合にのみインスタンス化されます。 Lazy-init はコンテナの効率に有益であり、不要な Bean を無視できます。
同時に、特定のモジュールの対応する Bean で、lazy-init 属性を使用できます。lazy-init は、default-lazy-init よりも高い優先順位を持ちます。 spring アノテーションは、 @Lazy(false) アノテーション タグを使用してクラス名にアノテーションを付けることができます。これは、Bean<bean id="baseTxService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> </bean>bean abstract="true で Lazy-init 属性を設定するのと同等です。これは、Bean はインスタンス化されません
もちろん、すべての Bean が default-lazy-init を true に設定できるわけではありません
【関連する推奨事項】
1.
2. Java ビデオ チュートリアル
3.以上がJava構成のdefault-lazy-init='true'構成について簡単に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。