火星花种
2020-01-09 13:59
采纳率: 50%
浏览 379
已采纳

交给spring管理的类和没交给spring管理的类在项目启动后,加载顺序是什么样的?

想项目启动后自动执行一个方法,我把这个类A用spring管理了,并把要执行的这个方法放在了init-method中。
这个方法需要用到一个类B中的某个静态方法,但是这个类B并没有交给spring容器管理,就是一个普通的类。
我想问,在这个init-method调用类B中的这个静态方法的时候,会不会出现classNotFound类似的这种错误?还是在调用B.xxx()的时候类B就自动加载了?并不会出现这样的错误?还是需要把B也交给Spring容器管理才可以(才能控制他在类A之前加载好)?

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

4条回答 默认 最新

  • 长河落雨 2020-01-09 14:54
    已采纳

    不会报错的。 在类中使用static修饰的静态方法会随着类的定义而被分配和装载入内存中;而非静态方法属于对象的具体实例,只有在类的对象创建时在对象的内存中才有这个方法的代码段。

    已采纳该答案
    打赏 评论
  • dabocaiqq 2020-01-09 15:04
    打赏 评论
  • Hefei19881002 2020-01-09 16:03

    静态是先于对象存在,你的项目一启动所有static修饰的 类 方法 变量 都会被初始化放入内存

    打赏 评论
  • 默默a20 2020-01-09 17:52

    完全没问题,你需要好好去学下static 方法

    打赏 评论

相关推荐 更多相似问题