注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

断尘居

温柔的男人像海洋。

 
 
 
 
 

日志

 
 

Spring中Bean的生命周期  

2011-12-06 00:52:45|  分类: SSH |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
当然我们可以在Spring的配置文件中来初始化我们的Bean属性,但是如果代码量大的话,这就给配置文件的可读性带来很大的问题。
下面我们来看看其它的Bean初始化方式。
在Spring中,Bean的初始化有两种方式:
1,我们可以在xml配置文档中指定init-method属性来完成。
2,定义Bean时候实现org.springframework.factory.InitializingBean接口。
下面看看我们的代码:
对于第一种方式:
package com.jnotnull;

public class HelloWorld {
public String message = null;

public void init(){
this.message = "HelloWorld";
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}



config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" init-method="init">
<bean>
</beans>


第二种方式:

package com.jnotnull;
import org.springframework.beans.factory.InitializingBean;

public class HelloWorld implements InitializingBean{
public String message = null;

public void afterProertiesSet(){
this.message = "HelloWorld";
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}


配置文件不变

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld">
<bean>
</beans>


------------------------------分割线-----------------------------------------
在前面我已经给出了一种使用Bean的方法:

package com.jnotnull;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class Test {
public static void main(String []args){
ApplicationContext context = new FileSystemXmlApplicationContext("config.xml");
HelloWorld helloworld = (HelloWorld)context.getBean("HelloWorld");
System.out.println(helloworld.getMessage());
}
}

这里用到的式ApplicationContext方式。
下面给出另外两种方式:
BeanWrapper和BeanFactory;
首先看看BeanWrapper:

HelloWorld helloworld=new HelloWorld();
BeanWrapper wrapper = new BeanWrapperImpl(helloworld);
wrapper.setPropertyValue("message","HelloWorld");
System.out.println(wrapper.getPropertyValue("message"));


下面使用BeanFactory

InputStream is = new FileInputSystem("config.xml");
XmlBeanFactory factory = new XmlBeanFactory(is);
HelloWorld helloworld = (HelloWorld)factory.getBean("HelloWorld");
System.out.println(helloworld.getMessage);


下面来介绍一下Spring种Bean的销毁。销毁的方法和初时化的方法非常的类似:
完成Bean的销毁也有两种方式;
1在配置文件种指定destroy-method属性来完成
2Bean类实现org.springframework.beans.factory.DsiposableBean
下面看一下代码

package com.jnotnull;

public class HelloWorld {
public String message = null;

public String cleanup() {
this.message="";
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans Public "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id ="HelloWorld" class="com.jnotnull.HelloWorld" destory-method="cleanup">
<bean>
</beans>

第二种,实现DisposableBean接口

package com.jnotnull;
import org.springframework.beans.factory.DisposableBean;

public class HelloWorld implements DisposableBean{
public String message = null;

public void destroy(){
this.message = "";
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

}

  评论这张
 
阅读(889)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017