一、IOC 容器创建 Bean 的四种方式
1.1 普通创建方式
使用场景:直接通过类默认构造器创建对象
实现步骤:
<!-- 配置示例 -->
<bean id="book01" class="cn.cjxy.ioc_bean.domain.Book"/>
代码说明:
id
:Bean 的唯一标识符class
:指定类的全限定名- Spring 会调用默认无参构造器实例化对象
1.2 工厂模式创建
使用场景:需要工厂类处理复杂初始化逻辑时
实现步骤:
// 工厂类
public class BookFactory {
public Book createBook() {
return new Book("001", "Factory Book", 99.9);
}
}
<!-- 配置示例 -->
<bean id="bookFactory" class="cn.cjxy.ioc_bean.factory.BookFactory"/>
<bean id="book02" factory-bean="bookFactory" factory-method="createBook"/>
代码说明:
- 先注册工厂 Bean
factory-bean
指向工厂实例factory-method
指定创建方法
1.3 静态工厂创建
使用场景:不需要工厂实例时的高效创建方式
实现步骤:
public class BookStaticFactory {
public static Book createBook() {
return new Book("002", "Static Book", 88.8);
}
}
<!-- 配置示例 -->
<bean id="book03" class="cn.cjxy.ioc_bean.factory.BookStaticFactory"
factory-method="createBook"/>
代码说明:
- 直接通过类名调用静态方法
- 不需要先注册工厂 Bean
1.4 FactoryBean 接口方式
使用场景:需要精细控制 Bean 创建过程时
实现步骤:
public class BookFactoryBean implements FactoryBean<Book> {
@Override
public Book getObject() {
return new Book("003", "FactoryBean Book", 77.7);
}
@Override
public Class<?> getObjectType() {
return Book.class;
}
@Override
public boolean isSingleton(<