@Lazy注解学習
1667 ワード
回転:http://blog.51cto.com/4247649/2118337
今日は主に以下の方面から@Lazyの注釈を紹介します。@Lazy注解は何ですか? @Lazy注釈はどうやって使いますか?
1,@Lazyコメントは何ですか?
@Lazyコメントはbeanを識別するために遅延が必要かどうか、ソースは以下の通りです。
一つのパラメータしかありません。デフォルトはtrueです。つまりこの注釈を加えるとロードが遅くなります。
2,@Lazy注解はどうやって使いますか?
注を加えていない前に主要容器が起動すると、beanが実例化されます。以下の通りです。
@Lazyの注釈を加えると、最初の呼び出し時に下記のようにロードされなければなりません。
@Lazy注解の役割は主にスプリングIOC容器の起動時間を減らすことです。
今日は主に以下の方面から@Lazyの注釈を紹介します。
1,@Lazyコメントは何ですか?
@Lazyコメントはbeanを識別するために遅延が必要かどうか、ソースは以下の通りです。
@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;
}
一つのパラメータしかありません。デフォルトはtrueです。つまりこの注釈を加えるとロードが遅くなります。
2,@Lazy注解はどうやって使いますか?
注を加えていない前に主要容器が起動すると、beanが実例化されます。以下の通りです。
AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(MainConfig.class);
user
@Lazyの注釈を加えると、最初の呼び出し時に下記のようにロードされなければなりません。
/**
* bean
* @return
*/
@Scope
@Lazy
@Bean(value="user0",name="user0",initMethod="initUser",destroyMethod="destroyUser")
public User getUser(){
System.out.println(" user ");
return new User(" ",26);
}
AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(MainConfig.class);
User bean2 = applicationContext2.getBean(User.class);
user
1 === User [userName= , age=26]
@Lazy注解の役割は主にスプリングIOC容器の起動時間を減らすことです。