spring的bean管理(2种方式)
1、xml方式
2、注解方式
实例化bean的方式(创建Bean的方式)(3种)
1:使用类构造器实例化(默认无参数)
<!-- 方式一:无参数的构造方法的实例化,调用构造方法初始化,默认是调用无参数的构造方法-->
<bean id="bean1" class="com.spring.demo.Bean1"></bean>
2:使用静态工厂方法实例化Bean(简单工厂模式)
- 提供一个工厂类
public class Bean2Factory {
//静态方法
public static Bean2 getBean2(){
return new Bean2();
}
}
- 配置文件
<!--方式二:静态工厂实例化Bean, factory-method属性:指定静态工厂初始化对象调用的方法-->
<bean id="bean2" class="com.spring.demo.Bean2Factory" factory-method="getBean2"/>
3:使用实例工厂方法实例化Bean(工厂方法模式)
- 提供 Bean3 的实例工厂
public class Bean3Factory { //实例 public Bean3 getBean3(){ return new Bean3(); } }
- 配置文件
<!--
方式三:实例工厂实例化 Bean
步骤:
第一步:定义实例工厂对象
第二步:通过实例工厂对象,调用方法创建目标对象
属性:
factory-bean:指定实例工厂对象
factory-method:指定实例工厂创建对象,调用的方法
-->
<bean id="bean3Factory" class="com.spring.demo.Bean3Factory" />
<bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3" />
通过调用静态工厂方法创建 Bean
•调用静态工厂方法创建 Bean是将对象创建的过程封装到静态方法中. 当客户端需要对象时, 只需要简单地调用静态方法, 而不同关心创建对象的细节.
•要声明通过静态方法创建的 Bean, 需要在 Bean 的 class 属性里指定拥有该工厂的方法的类, 同时在 factory-method 属性里指定工厂方法的名称. 最后, 使用 <constrctor-arg> 元素为该方法传递方法参数.
通过调用实例工厂方法创建 Bean
•实例工厂方法: 将对象的创建过程封装到另外一个对象实例的方法里. 当客户端需要请求对象时, 只需要简单的调用该实例方法而不需要关心对象的创建细节.
•要声明通过实例工厂方法创建的 Bean
–在 bean 的 factory-bean 属性里指定拥有该工厂方法的 Bean
–在 factory-method 属性里指定该工厂方法的名称
–使用 construtor-arg 元素为工厂方法传递方法参数