IOC装配Bean(xml方式)

一、Spring框架Bean实例化的方式:

*构造方法实例化(默认无参)


public class Bean01 {
public static void main(String[] args) {
ApplicationContext applicationContext = new 
ClassPathXmlApplicationContext("applicationContext.xml");
Bean01 bean01 = (Bean01)applicationContext.getBean("bean01");
System.out.println(bean01);
}
}


<bean id = "bean01" class ="com.dejun.spring.demoBean.Bean01" ></bean>

结果:


*静态工厂实例化


public class Bean02Factory {
/*
 * 静态工厂方法
 */
public static Bean02 getBean2(){
System.out.println("静态工厂获得Bean2的方法");
return new Bean02();
}
}

<bean id = "bean02" class = "com.dejun.spring.demoBean.Bean02Factory" 
factory-method = "getBean2"></bean>


*实例工厂实例化

这里的bean03和上面的都一样,只是getBean03()的方法没有加静态而已

<bean id = "bean03f" class = "com.dejun.spring.demoBean.Bean03Factory"></bean>
<bean id = "bean03" class = "com.dejun.spring.demoBean.Bean03" 
factory-bean = "bean03f" factory-method = "getBean03"></bean>

这里要注意,由于不是静态的的,所以不能直接调用这个get方法,必须实例一个BeanFactory的对象,这里是通过无参构造方法的方式,也就是方式一实现的,然后才能用工厂方式,否则会报错。并且还亚欧指定好factory-bean。


(2、3的区别主要是工厂方法是不是static的)

二、Bean标签的其他配置:

类的作用范围,

singleton:在Spring Ioc容器中仅存在一个Bean实例,Bean以单例方式存在,是默认值,容器初始化时就创建bean实例;

prototype:容器初始化时不创建bean实例,而是在每次容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行new XxxBean();

request:每次HTTP请求都会创建一个新的Bean,该作用于仅适用于WebApplicationContext环境;

session:同一个HTTP Session 共享一个Bean,不同Session使用不同Bean,仅适用于WebApplicationContext环境;

globalSession:一般用于Porlet应用环境,该作用域仅适用于WebApplicationContext环境。

(具体代码就不写了,就是在ApplicationContext.xml文件的bean标签中添加一个scope属性,设置后就可以了)


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值