ldddd_
2020-09-16 10:52
采纳率: 33.3%
浏览 197
已采纳

springboot如何使bean在static之前加载?

private static DictDao dictDao = 
            SpringContextHolder.getBean(DictDao.class);

这个为静态方法在启动时SpringContextHolder中的applicationContext为null,
而只有当静态方法都加载完成后才会执行SpringContextHolder中的setApplicationContext方法,
怎么样可以先执行springboot的bean注入,然后在加载static

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • threenewbee 2020-09-16 11:31
    已采纳

    这个没办法,jvm初始化顺序就是如此,但是变通的方法是static的变量使用懒惰加载,放在首次调用的时候初始化。

    已采纳该答案
    打赏 评论
  • 一丝混乱 2020-09-16 11:33

    你这是要颠覆JVM的工作机制啊……

    思路应该反过来,等bean注入完毕之后,再对这个静态变量赋值

    打赏 评论
  • SpringBoot中文社区 2020-09-16 13:30

    你说说看你的目的是什么。

    打赏 评论
  • niaonao 2020-09-16 14:09
    打赏 评论

相关推荐 更多相似问题