ApplicationRunner CommandLineRunner使用

这两个接口均需要实现一个run方法(参数不同),实在spring 启动类执行之后第一个执行的类,可以用来初始化一些预置条件之类的。

使用限制:

1.需要实现上述的任意一个接口

2.该接口的实现类实在运行期间继启动类执行后第一个执行的类,但在启动过程中(编译构建阶段)优先级并不高(具体不详)。

例如:

实现了上述接口的类的run方法获取了配置文件中的字段a,

但 有这么一个bean 用到了a变量,就会抛异常

@Bean

public User getU(){

if (a==null){

throw MyExceptionxxxxx

}

}

获取不到。debug时会发现,先走的@Bean的创建,而不是上述的实现类,因此上述的实现类只会在运行期间初始化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章