ノート怠惰春は@Lazyをロード

@Lazyコンセプトノート

         かどうかは、怠惰なBeanを識別するために使用されます   

それが初期化されるときに、オブジェクトが場合にのみ、あなたの最初の使用に作成されたときに、コンテナが起動しない場合は、このBeanは直接@Lazyを追加するかどうか負荷が(取得)Beanを作成する場合に活性化されたIoCコンテナ      

ソースは以下の

@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Lazy {

	/**
	 * Whether lazy initialization should occur.
	 */
	boolean value() default true;

}

   @Component @Bean @Configurationにすることができ、ソースや公式文書の範囲で見られる@Lazy

   デフォルトFlaseによってtrueに真のオープンいい加減に近いブール値の@Lazy

下記の公式コメント!

 

この注釈が存在しない場合(@Lazy)@Component @Beanまたは定義は、直接初期化されます。真、または@Bean @Componentに存在し、設定が初期化されない場合は、前たBeanFactoryから取得した別のBean参照または明示的に閉じました。そこがfalseに設定されている場合、Beanは初期化が、このような植物の単一の実施形態に行われ、起動時にマメ植物によってインスタンス化されます。

クラスが存在@Configurationレイジーであれば、それはすべての@Bean @Configuration方法は、遅延初期化する必要があることを示します。偽そこ@Lazyレイジー・注釈付き@Configurationクラス@メソッド@Beanとある場合は、「遅延デフォルト」の動作の存在を示し、熱心にBeanを初期化する必要があります。

また@Lazyも@Autowireと@Injectに配置することができる(これは一般的にありません)

 

 

 

@Beanの例 

   

package com.lqp.test.day01;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Description;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
//配置类
@Configuration
public class ConfigurationTest {

	@Bean
	@Lazy
	public User user() {
		System.out.println("我是懒加载");
		return new User("11", "lqp");
	}


}

  テスト 

package com.lqp.test.day01;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainTest1 {

	
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		ApplicationContext context = new AnnotationConfigApplicationContext(ConfigurationTest.class);
		
		System.out.println("ioc容器启动");
		User user =(User) context.getBean("user");
	    System.out.println(user);
	}
}
ioc容器启动
我是懒加载
User [age=11, name=lqp]

 

         

@Lazyは、主な機能を注釈付きspringIOC容器が開始され、ロード時間を短縮することです

 

公開された19元の記事 ウォンの賞賛8 ビュー4135

おすすめ

転載: blog.csdn.net/paohui001lqp/article/details/97111701