一、spring的bean初始化顺序
所有的示例代码都在这:
https://gitee.com/zyxscuec/spring
初始化顺序和applicationContext.xml配置文件里面写的bean的顺序有关,比如我这里写的是B A C
如图:
package com.zhou.spring.test; /** * @author zhouyanxiang * @create 2020-07-2020/7/13-18:01 */ public class A { public A (){ System.out.println("A init ..."); } }
package com.zhou.spring.test; /** * @author zhouyanxiang * @create 2020-07-2020/7/13-18:01 */ public class B { public B (){ System.out.println("B init..."); } }
package com.zhou.spring.test; /** * @author zhouyanxiang * @create 2020-07-2020/7/13-18:01 */ public class C { public C (){ System.out.println("C init ..."); } }
package com.zhou.spring.test; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * @author zhouyanxiang * @create 2020-09-2020/9/24-17:24 */ public class SpringTest { public static void main(String[] args) { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext2.xml"); A a = ctx.getBean("A",A.class); System.out.println(a); } }
那么最后输出的顺序就会是
当然如果在配置文件里面标签添加了depends-on属性的话,那么就会先加载这个depends-on属性的bean,如
那么最后输出的将会是这样的: