ホームページ > Java > &#&チュートリアル > Java構成のdefault-lazy-init='true'構成について簡単に説明します。

Java構成のdefault-lazy-init='true'構成について簡単に説明します。

Y2J
リリース: 2017-05-09 13:31:57
オリジナル
2612 人が閲覧しました

以下のエディタでは、春の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


2 の抽象

<bean id="baseTxService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> 
</bean>
ログイン後にコピー

bean abstract="true で Lazy-init 属性を設定するのと同等です。これは、Bean はインスタンス化されません


これは、開発プロセス中の起動時間を節約するためだけです。実際の環境にデプロイする場合、default-lazy-init を true に設定する必要はありません。結局のところ、実際の環境にデプロイするのは一般的なことではなく、毎回 1 分間起動することは大きな問題ではなく、サーバーの効率を向上させることができます。

もちろん、すべての Bean が default-lazy-init を true に設定できるわけではありません

【関連する推奨事項】


1.

Java 無料ビデオ チュートリアル

2. Java ビデオ チュートリアル

3.

JAVA チュートリアル マニュアル

以上がJava構成のdefault-lazy-init='true'構成について簡単に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート