3.Spring Bean
来源:互联网 发布:网络校时电话 编辑:程序博客网 时间:2024/06/08 05:59
一.实例化bean 的三种方式:
1.使用类构造器实例化:
<bean name=“xxx" class="xx.xx.xxxBean"/>
这种方式不做多提,用的最多,最方便。
2.使用静态工厂方法实例化:
<!--//静态工厂方法实例化--> <bean name="iSpring_3" class="com.zyy.service.impl.ISpring_3BeanFactory" factory-method="createISpring_3Bean"></bean>
package com.zyy.service;/** * Created by CaMnter on 2014/8/27. */public interface ISpring_3 { public void message();}
package com.zyy.service.impl;import com.zyy.service.ISpring_3;/** * Created by CaMnter on 2014/8/27. */public class ISpring_3Bean implements ISpring_3 { public void message() { System.out.println("***** 使用静态工厂方法实例化 *****"); }}
package com.zyy.service.impl;import com.zyy.service.ISpring_3;/** * Created by CaMnter on 2014/8/20. */public class ISpring_3BeanFactory { //静态工厂方法实例化 public static ISpring_3 createISpring_3Bean() { return new ISpring_3Bean(); }}
@Test public void test_1() throws Exception { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); ISpring_3 iSpring_3 = (ISpring_3) applicationContext.getBean("iSpring_3"); iSpring_3.message(); }
3.使用实例工厂方法实例化:
<!--//实例化工厂方法实例化--> <bean name="iSpring_4BeanFactory" class="com.zyy.service.impl.ISpring_4BeanFactory"></bean> <bean name="iSpring_4" factory-bean="iSpring_4BeanFactory" factory-method="createISpring_4Bean"></bean>
package com.zyy.service;/** * Created by CaMnter on 2014/8/27. */public interface ISpring_4 { public void message();}
package com.zyy.service.impl;import com.zyy.service.ISpring_4;/** * Created by CaMnter on 2014/8/27. */public class ISpring_4Bean implements ISpring_4 { public void message() { System.out.println("***** 使用实例工厂方法实例化 *****"); }}
package com.zyy.service.impl;import com.zyy.service.ISpring_4;/** * Created by CaMnter on 2014/8/20. */public class ISpring_4BeanFactory { //使用实例工厂方法实例化 public ISpring_4 createISpring_4Bean() { return new ISpring_4Bean(); }}
@Test public void test_2() throws Exception { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); ISpring_4 iSpring_4 = (ISpring_4) applicationContext.getBean("iSpring_4"); iSpring_4.message(); }
二.Bean的作用域
通过设置bean节点下的scope的值:
.singleton
在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动
时初始化bean,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean,
这时候,只有第一次获取bean会才初始化bean。如:
<bean name="xxx" class="xx.xx.xxxBean"lazy-init="true"/>
如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“
如下:
<beans default-lazy-init="true“...>
.prototype
每次从容器获取bean都是新的对象。
.request
.session
.globalsession
但是不建议设置lazy-init的值为true,因为这样只有才调试的时候才知道bean初始化是否
有问题,后造成后期的麻烦,日过在实例化Spring容器的时候就实例化bean,可以早点发现
问题。
bean的初始化,可以是Spring容器实例的同时初始化,可以是设置lazy后,通过采用
getBean后才能初始化。
但是,bean 的销毁,是在Spring 容器关闭时,就被销毁了。
我们可以:
指定Bean的初始化方法和销毁方法
<bean name="xxx" class="xx.xx.xxxBean" init-method="init"destroy-method="close"/>
这就要求需要在bean中定义一个 init()方法 和 close()方法。当bean创建或销毁时
容器分别自动调用方法。
- 3.Spring Bean
- java bean,spring bean
- Spring Bean
- spring bean
- spring bean
- Spring bean
- spring & bean
- Spring Bean
- spring bean
- Spring Bean
- Spring bean
- Spring bean
- Spring Bean
- Spring Bean
- Spring bean
- Spring Bean
- spring bean
- spring bean
- No curses/termcap library found的解决办法
- /bin/bash^M: 坏的解释器: 没有那个文件或目录
- PA 项目关联项目经理
- VeryCD下载方法
- 模拟一个String的trim功能
- 3.Spring Bean
- 安装FTP服务器
- dataguru课程优惠码
- hdu 4739 Zhuge Liang's Mines (水题:坑题!!!)
- 我的oracle笔记-06 之 有限CR
- 跨系统数据库取数实现方案
- R12中注册客户化应用为多组织应用
- Linux 下ssh创建ip加密码隧道
- VM虚拟机无摄像头问题解决