java项目启动时加载数据库信息存入缓存方法

一、获取需要加载的数据

@Component
public class MathMethod {

    public void addMethod(int i) {
        //查询方法存入redis等库
        System.out.println(i);
    }
}

注意:同样需要被spring容器管理即@Component

二、继承CommandLineRunner重写run方法

@Component
public class Runner implements CommandLineRunner {
    @Autowired
    private MathMethod mathMethod;

    @Override
    public void run(String... args) throws Exception {
    	//需求初始化的方法
        mathMethod.addMethod(1);
        System.out.println("CommandLineRunner执行");
    }
}

注意:同样需要被spring容器管理即@Component

三、InitializingBean 也具有差不多功能

@Service
public class InitTest implements InitializingBean {
    @Autowired
    private MathMethod mathMethod;
    @Override
    public void afterPropertiesSet() throws Exception {
        mathMethod.addMethod(2);
        System.out.println("InitializingBean执行了");
    }
}

四、执行先后顺序

@SpringBootApplication
public class InitdemoApplication {

    public static void main(String[] args) {
        System.out.println("main执行");
        SpringApplication.run(InitdemoApplication.class, args);
        System.out.println("main执行结束");
    }

}
结果:
main执行
InitializingBean执行了
CommandLineRunner执行
main执行结束

五、简单说明

CommandLineRunner在spring容器初始化bean后执行

你可能感兴趣的:(java)