Spring Bean的实例化的三种方式
方式一:使用类构造器实例化(默认方式):
在applicationContext文件中

```
    <!--第一种:无参构造器的方式-->
    <bean id="bean1" class="com.imoo.ioc.demo2.Bean1"/>
```
在Bean中
```
public class Bean1 {
    public Bean1() {
        System.out.println("Bean1被实例化了");
    }
}

public void demo1() {
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    Bean1 bean1 =(Bean1) applicationContext.getBean("bean1");
}
```

方式二:使用静态工厂方法实例化(简单工厂模式):
注意:此种方式中在配置中多一个factory-method,切记
在applicationContext文件中

 <!--第二种:静态工厂的方式-->
    <bean id="bean2" class="com.imoo.ioc.demo2.Bean2Factory" factory-method="creatBean2"/>
public class Bean2 {
}

在代码中

public class Bean2 {

}
public class Bean2Factory {
    public static Bean2 creatBean2() {
        System.out.println("Bean2Factory方法已经执行了");
        return new Bean2();
    }
}

public void demo2() {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        Bean2 bean2 =(Bean2) applicationContext.getBean("bean2");
    }

方式三:使用实例工厂方法进行实例化
注意:与第二种方式不同的点是:bean工厂中方法不是static,在xml中要先写factory的路径,然后配置bean,因为静态的可以直接用类名点调用
在applicationContext文件中

<!--第三种:实例工厂的方式-->
    <bean id="bean3factory" class="com.imoo.ioc.demo2.Bean3Factory"/>
    <bean id="bean3" factory-bean="bean3factory" factory-method="creatBean3"/>

在代码中:

public class Bean3 {
}

public class Bean3Factory {
    public Bean3 creatBean3() {
        System.out.println("bean3的工厂被执行了");
        return new  Bean3();
    }
}

   public void demo3() {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        Bean3 bean3 =(Bean3) applicationContext.getBean("bean3");
    }