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

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

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

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

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

4条回答 默认 最新

  • caozhy
    已采纳

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

    点赞 评论
  • weixin_42270490
    一丝混乱 2020-09-16 11:33

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

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

    点赞 评论
  • csdn_0xFFFF
    SpringBoot中文社区 2020-09-16 13:30

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

    点赞 评论
  • niaonao
    niaonao 2020-09-16 14:09
    点赞 评论

相关推荐