spring框架的学习-IOC容器(二)

- IOC创建Bean的三种方式

  1. 默认构造方法创建Bean
  2. 静态工厂方法创建Bean
  3. 实例工厂方法创建Bean

代码实例

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<!-- 通过构造方法创建Bean -->
<bean id="helloWorld" class="com.lzl.test.createbean.HelloWorld"></bean>
<!-- 通过静态工厂方法创建Bean -->
<bean id="helloWorldFactory" class="com.lzl.test.createbean.HelloWorldFactory" factory-method="getInstance"></bean>
<!-- 通过动态工厂方法创建Bean -->
<!-- 创建实例工厂Bean -->
<bean id="dynamicFactory" class="com.lzl.test.createbean.DynamicHelloWorldFactory"></bean>
<!-- 使用实例工厂创建Bean -->
<bean id="helloWorld1" class="com.lzl.test.createbean.HelloWorld" factory-bean="dynamicFactory"
factory-method="getHelloWorld"></bean>
</beans>

代码实例

public static String path="";
public static ApplicationContext fileResource;
@Before
public void getFileResource(){
    fileResource = new ClassPathXmlApplicationContext(path);
}

public class CreateBeanTest extends SpringHelper{
    static{
        path = "org/springframework/jmx/helloWorldCreateBean.xml";
    }
    @Test
    public void createBean(){
        HelloWorld h1 = (HelloWorld) this.fileResource.getBean("helloWorld");
        HelloWorld h2 = (HelloWorld) this.fileResource.getBean("helloWorldFactory");
        HelloWorld h3 = (HelloWorld) this.fileResource.getBean("helloWorld1");
    }
}

总结

SpringIOC

利用spring容器对对象的创建、初始化、和销毁(对象是単例才行)。

  1. 创建

    方式:

    1. 默认构造方法创建Bean
    2. 静态工厂方法创建Bean
    3. 实例工厂方法创建Bean

    时机:

    1. lazy-init为“default/false”,当启动spring的时候创建Bean。
    2. lazy-init为“true”时,使用getBean的时候创建bean
  2. 初始化
    1. spring容器调用init方法
    2. 在构造方法之后执行
  3. 销毁
    1. 如果是単例,则必须返回ClassPathXmlApplicationContext该容器,才能执行销毁工作。
    2. 如果是多例,容器不负责销毁。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值