Spring Boot中ApplicationRunner与CommandLineRunner

在实际的开发场景中,经常需要在运行环境之前执行一些类似于读取配置文件、数据库连接操作等。Spring Boot提供了ApplicationRunner和CommandLineRunner来帮助我们实现这些需求。
时机:他们执行的时机是为容器启动完成的时候;
实现:都需要去实现这两个接口的run方法;
区别:ApplicationRunner中的run方法参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组;
示例:

ApplicationRunner

package com.zm.lesson1;

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

@Component
public class AppRunner implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) throws Exception {

        System.out.println("测试ApplicationRunner接口,参数:" + args);
    }
}

CommandLineRunner

package com.zm.lesson1;

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

import java.util.Arrays;

@Component
public class CommandRunner implements CommandLineRunner {

    @Override
    public void run(String... strings) throws Exception {

        System.out.println("测试ApplicationRunner接口,参数:" + Arrays.toString(strings));
    }
}

控制台输出

Application与CommandLineRunner输出

发布了12 篇原创文章 · 获赞 19 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/u012675150/article/details/104055248
今日推荐