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

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

问题描述:

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

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

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

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