从零搭建本身的SpringBoot后台框架(十八)

Hello你们好,本章咱们添加项目启动时初始化资源功能 。有问题能够联系我mr_beany@163.com。另求各路大神指点,感谢

在咱们实际工做中,总会遇到这样需求,在项目启动的时候须要作一些初始化的操做,好比读取配置文件信息,数据库链接,清除缓存信息等。在Spring Boot中给咱们提供了两个接口来帮助咱们实现这样的需求。这两个接口就是咱们今天要讲的CommandLineRunnerApplicationRunner,他们的执行时机为容器启动完成的时候。
git

一:共同点和区别

共同点:其一执行时机都是在容器启动完成的时候进行执行;其二这两个接口中都有一个run()方法;  github

不一样点:ApplicationRunner中run方法的参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组。spring

二:使用ApplicationRunner来完成需求

建立core→startuprunner→StartupRunner1数据库

package com.example.demo.core.startuprunner;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(value = 1)
public class StartupRunner1 implements ApplicationRunner {

    private static final Logger logger = LoggerFactory.getLogger(StartupRunner1.class);

    @Override
    public void run(ApplicationArguments var1) throws Exception{
        logger.info("服务器启动成功!<<<<使用ApplicationRunner接口");
    }
}复制代码

注意:须要添加@Component,否则SpringBoot扫描不到这个类,不会执行。 数组

启动服务器,咱们能够看见缓存


三:使用CommandLineRunner来完成需求

建立core→startuprunner→StartupRunner2
bash

package com.example.demo.core.startuprunner;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(value = -1)
public class StartupRunner2 implements CommandLineRunner {

    private static final Logger logger = LoggerFactory.getLogger(StartupRunner2.class);

    @Override
    public void run(String... args) throws Exception{
        logger.info("服务器启动成功!<<<<使用CommandLineRunner接口");
    }
}
复制代码


咱们能够看见已经输出成功,而且CommandLineRunner  在  ApplicationRunner  先执行服务器

四:使用Order注解修改执行顺序

若是有多个实现类,而咱们须要按照必定的顺序执行的话,那应该怎么办ide

解决方案:在实现类上加上@Order注解指定执行的顺序spa

须要注意:数字越小,优先级越高,也就是@Order(1)注解的类会在@Order(2)注解的类以前执行。

项目地址

码云地址: gitee.com/beany/mySpr…

GitHub地址: github.com/MyBeany/myS…

写文章不易,如对您有帮助,请帮忙点下star

结尾

添加项目启动时初始化资源功能已完成,后续功能接下来陆续更新,有问题能够联系我mr_beany@163.com。另求各路大神指点,感谢你们。

相关文章
相关标签/搜索