反射里面还可以通过构造方法创建对象。
建议把日志输出级别调整为debug,看看是那些类和方法创建的bean,找到后直接看源代码或者抓断点调试一步一步de的跟踪

解决方案 »

  1.   

    一般情况下,
    在这句中 ApplicationContext context = new ClassPathXmlApplicationContext("com/sxt/test/beans.xml");
    userDao这个bean就被创建了。
    ApplicationContext 实质上是一个beanFactory,它里面包含了一个map用来存储bean。
    执行上面那一句时,会先读取配置文件,再利用反射将所有的bean进行实例化,然后以bean的name作为key,实例化后的对象作为value存储进去beanFactory里的map,这样在后面调用时即可直接取出。
    Spring IOC简单过程是这样的。