第2章:spring中的Bean/2.2 Bean的实例化/2.2.1 调用构造方法
- 调用构造方法
- 无参构造方法: 第1章:spring注入/1.1 元数据配置/1.2 XML配置方式/1.2.2 XML文件结构/1.2.2.3 Bean的定义
- 有参数构造方法: 第1章:spring注入/1.2 依赖注入/1.2.2 构造方法注入/1.2.2.0 目录
第2章:spring中的Bean/2.2 Bean的实例化/2.2.2 调用静态方法
- 调用静态方法
- 格式:在 第1章:spring注入/1.1 元数据配置/1.2 XML配置方式/1.2.2 XML文件结构/1.2.2.3 Bean的定义基础上,添加factory-method="静态方法"
<bean id="bean的名称" class="含包名的类名" factory-method="静态方法">
- 静态方法要求:
- 静态方法没有传人参数
- 返回值为具体的类或者接口,但是可以和 class="含包名的类名" 中的类没有任何关系
- 静态方法 属于 class="含包名的类名"中的方法
- 举例:
-
@Component
public class FooFactory {
@Bean(name="foo31")
public static Foo createFoo3() {
Foo foo = new Foo();
foo.setName("foo3");
return foo;
}
-
<!-- 要求静态方法属于com.wiley.beginningspring.ch2.FooFactory 这个类 -->
<bean id="foo3" class="com.wiley.beginningspring.ch2.FooFactory" factory-method="createFoo3"/>
-
第2章:spring中的Bean/2.2 Bean的实例化/2.2.3 调用工厂方法
- 调用静态方法
- 格式:
- 先生成工厂Bean,格式参照:在 第1章:spring注入/1.1 元数据配置/1.2 XML配置方式/1.2.2 XML文件结构/1.2.2.3 Bean的定义
- 利用工厂Bean调用不同的工厂方法(非静态)生成不同的Bean
工厂Beans是第一步生成的bean
<bean id="bean名称" factory-bean="工厂Bean" factory-method="工厂方法"/>
- 工厂方法要求:
- 工厂方法没有传人参数
- 返回值为具体的类或者接口,但是可以和 class="含包名的类名" 中的类没有任何关系
- 工厂方法 属于 class="含包名的类名"中的方法
- 举例:
- 定义工厂方法
@Component
public class FooFactory {
@Bean(name="foo4")
public Foo createFoo4() {
Foo foo = new Foo();
foo.setName("foo4");
return foo;
}
- XML文件定义:
<!-- 生成工厂Bean -->
<bean id="fooFactory" class="com.wiley.beginningspring.ch2.FooFactory"/>
<!-- 利用工厂Bean,调用相关的方法初始化Bean -->
<bean id="foo4" factory-bean="fooFactory" factory-method="createFoo4"/>
- 定义工厂方法