我在学春 Boot 。ApplicationRunner或任何runner接口的一些典型用例是什么?
import org.junit.jupiter.api.Test;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class PersistencedemoApplicationTests implements ApplicationRunner {
@Test
void contextLoads() {
}
@Override
public void run(ApplicationArguments args) throws Exception {
// load initial data in test DB
}
}
这是我知道的一个案例。还有别的吗
4条答案
按热度按时间hs1ihplo1#
这些运行器用于在应用程序启动时运行逻辑,例如spring Boot 具有ApplicationRunner(功能接口)和
run
方法。ApplicationRunner run()将在applicationcontext创建之后和spring Boot 应用程序启动之前执行。
ApplicationRunner接受ApplicationArgument,它有方便的方法,如getOptionNames()、getOptionValues()和getSourceArgs()。
而CommandLineRunner也是一个功能接口,具有
run
方法CommandLineRunner run()将在applicationcontext创建之后和spring Boot 应用程序启动之前执行。
它接受在服务器启动时传递的参数。
它们都提供相同的功能,
CommandLineRunner
和ApplicationRunner
之间的唯一区别是CommandLineRunner.run()
接受String array[]
,而ApplicationRunner.run()
接受ApplicationArguments
作为参数。您可以通过示例here找到更多信息vkc1a9a22#
或者像这样:
eqzww0vc3#
为了使用 ApplicationRunner 或 CommandLineRunner 接口,需要创建一个***Spring bean***并实现 ApplicationRunner 或 CommandLineRunner 接口,两者执行类似。完成后,Spring应用程序将检测到bean。
此外,您还可以创建多个 ApplicationRunner 或 CommandLineRunner bean,并通过实现
用例:
1.您可能希望记录一些命令行参数。
1.您可以在终止此应用程序时向用户提供一些说明。
考虑:
ApplicationRunner的详细信息
ubby3x7f4#
ApplicationRunner和CommandLineRunner是Sping Boot 提供的两个接口,用于在应用程序完全启动之前运行任何自定义代码。
Spring-batch是一个批处理框架。这使用CommandLineRunner在应用程序启动时注册和启动批处理作业。
您还可以使用此接口将一些主数据加载到缓存中/执行运行状况检查。
用例因应用而异。