如何实现在SpringBoot项目启动类启动时加载运动特定的代码

Posted 蜜桃婷婷酱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现在SpringBoot项目启动类启动时加载运动特定的代码相关的知识,希望对你有一定的参考价值。

如何实现在SpringBoot项目启动类启动时加载运动特定的代码呢 有两种方式
为了方便测试效果,先写一个service在启动类进行注入方便我们输出

package com.wyh.test;

import org.springframework.stereotype.Service;

/**
 * @program: SpringBoot-MybatisPlus-01
 * @description: 我的服务
 * @author: 魏一鹤
 * @createDate: 2021-11-23 23:15
 **/
@Service
public class MyService 
        public String startPrint()
            System.out.println("启动类被运行加载会调用我");
            return "ok";
        

  //注入我们的service方便实用它的方法
    @Autowired
    private MyService myService;

第一种方式 让我们的启动类实现ApplicationRunner接口 重写它的run方法

implements ApplicationRunner

 @Override
    public void run(ApplicationArguments args) throws Exception 
        //在SpringBoot启动类启动时会被调用
        myService.startPrint();
        System.out.println("我是第一种方式,实现ApplicationRunner接口 重写它的run方法");
    

第二种方式 让我们的启动类实现CommandLineRunner接口 重写它的run方法

implements CommandLineRunner

@Override
    public void run(String... args) throws Exception 
        //在SpringBoot启动类启动时会被调用
        myService.startPrint();
        System.out.println("我是第二种方式,实现CommandLineRunner接口 重写它的run方法");
    

开启启动类发现控制台成功打印输出

启动类被运行加载会调用我
我是第一种方式,实现ApplicationRunner接口 重写它的run方法
启动类被运行加载会调用我
我是第二种方式,实现CommandLineRunner接口 重写它的run方法

完整的代码如下

启动类

package com.wyh;

import com.wyh.test.MyService;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.wyh.mapper") //扫描我们的mapper接口
//
//1.实现ApplicationRunner接口 重写它的run方法
//2.实现CommandLineRunner接口 重写它的run方法
public class WyhApplication implements ApplicationRunner, CommandLineRunner 
    //注入我们的service方便实用它的方法
    @Autowired
    private MyService myService;
    public static void main(String[] args) 
        SpringApplication.run(WyhApplication.class, args);
    

    @Override
    public void run(ApplicationArguments args) throws Exception 
        //在SpringBoot启动类启动时会被调用
        myService.startPrint();
        System.out.println("我是第一种方式,实现ApplicationRunner接口 重写它的run方法");
    

    @Override
    public void run(String... args) throws Exception 
        //在SpringBoot启动类启动时会被调用
        myService.startPrint();
        System.out.println("我是第二种方式,实现CommandLineRunner接口 重写它的run方法");
    


service

package com.wyh.test;

import org.springframework.stereotype.Service;

/**
 * @program: SpringBoot-MybatisPlus-01
 * @description: 我的服务
 * @author: 魏一鹤
 * @createDate: 2021-11-23 23:15
 **/
@Service
public class MyService 
        public String startPrint()
            System.out.println("启动类被运行加载会调用我");
            return "ok";
        


项目目录

以上是关于如何实现在SpringBoot项目启动类启动时加载运动特定的代码的主要内容,如果未能解决你的问题,请参考以下文章

springboot 启动类CommandLineRunner(转载)

SpringBoot热部署简介

springboot项目启动之后初始化自定义配置类

Dubbo: 在springboot中的启动过程

Spring Boot 启动预加载数据 CommandLineRunner

spring boot启动自动关闭