8.2.5 使用@DependsOn和@Lazy改变初始化行为

8.2.5 使用@DependsOn和@Lazy改变初始化行为

  • @DependsOn用于强制初始化其他Bean;
  • @Lazy用于指定该Bean是否取消预初始化。

@DependsOn注解介绍

@DependsOn可以修饰Bean类或方法,使用该注解时可以指定一个字符串数组作为参数,每个数组元素对应于一个要强制初始化的Beanid。如以下代码所示:

1
2
3
4
5
6
@DependsOn({"steelAxe", "abc"})
@Component
public class Chinese implements Person
{
...
}

上面的代码使用了@DependsOn修饰Chinese类,这就指定在初始化idchinese这个Bean之前,会强制初始化idsteelAxeabc的这两个Bean.

@Lazy注解介绍

@Lazy修饰Spring Bean类用于指定该Bean的预初始化行为,使用该注解时可指定一个boolean型的value属性,该属性决定是否要预初始化该Bean。如果valuetrue则表示懒加载,也就是不会预初始化。
例如如下代码:

1
2
3
4
5
6
@Lazy(true)
@Component
public class Chinese implements Person
{
...
}

上面的粗体字注解指定当Spring容器初始化时,不会预初始化chinese这个bean