1.SpringBoot的类加载顺序怎么能知道?
在Bean的默认构造函数里面使用System.out.println就能知道创建顺序。
2.一个问题:SpringBoot的main函数中能够使用IOC容器中的Bean吗?
可以,但不能是通过注解注入的,只能是在run程序之后,通过ApplicationContext获取的。
这要搞清楚SpringBoot的启动过程,连Tomcat都是在run程序之后创建的,Spring容器更是之后了。
在启动类中用注解为成员变量注入值,由于先加载成员变量,之后加载静态的main函数,成员变量被加载并默认初始化时,main函数还没运行,Spring框架都还没启动,自然无法处理启动类中的注解。【注意,这与启动类中成员变量是否被static修饰无关,根本原因是启动类中成员变量被创建时,Spring框架还没启动】【另外,成员变量被加载就是被创建吗?从表现上看不是这么回事,因为构造函数中的System.out.println方法没有执行,可见加载只是创建引用变量,默认初始化只是指向默认的null对象,此时并没有创建对象,只有new才会创建对象。注意:JVM加载类并不等于】
JVM加载类的过程:加载、初始化、实例化,实例化才是调用new构造函数
https://blog.csdn.net/justloveyou_/article/details/72466416
public class T