前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java项目启动时执行指定方法的几种方式

Java项目启动时执行指定方法的几种方式

作者头像
Java学习录
发布2019-04-18 15:35:36
2.3K0
发布2019-04-18 15:35:36
举报
文章被收录于专栏:Java学习录Java学习录

很多时候我们都会碰到需要在程序启动时去执行的方法,比如说去读取某个配置,预加载缓存,定时任务的初始化等。这里给出几种解决方案供大家参考。

1. 使用@PostConstruct注解

这个注解呢,可以在Spring加载这个类的时候执行一次。来看一下下方代码。

代码语言:javascript
复制
@Componentpublic class Test {            public Test(){          System.out.println("我最先执行");        }                /**        *我第二个执行        */        @Autowired        private T t;              /**        *我第三个个执行        */      @PostConstruct      private void init(){        //假装有代码      } }

上方就是@PostConstruct注解的使用方法了,同时也表示了此类被加载时的执行顺序。

2. CommandLineRunner接口

使用CommandLineRunner接口类似于Main方法启动,可以接受一个字符串数组的命令行参数,来看一下实现

代码语言:javascript
复制
@Componentpublic class MyCommandLineRunner implements CommandLineRunner{
    @Override    public void run(String... args) throws Exception{        //假装有代码    }}

3. ApplicationRunner 接口

此种方式与实现CommandLineRunner接口的区别就是他的参数是ApplicationArguments

代码语言:javascript
复制
@Order(value = 1)@Componentpublic class MyApplicationRunner implements ApplicationRunner{
    @Override    public void run(ApplicationArguments args) throws Exception{        //假装有代码    }}

我们可以看到,此类相比较于第二种方式还增加一个@Order注解,这个注解其实第二种方式也是能加的。

它的作用就是控制类的加载顺序,这个顺序是从小到大的。比如说启动时先去加载Order的value等于1的类,然后去加载等于2的类。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 使用@PostConstruct注解
  • 2. CommandLineRunner接口
  • 3. ApplicationRunner 接口
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档