spring 容器中注册BeanPostProccessor来实现JavaBean的预处理和后处理
来源:互联网 发布:数据库系统概论考试 编辑:程序博客网 时间:2024/05/22 12:22
在spring管理javaBean的生命周期的初始化阶段,为了深入到javaBean的初始化阶段实现预处理和后处理,下面给了一个完整的可以运行的例子
1、Person 为接口。
2、Student 为类。
3、ProcessorTest 实现了BeanPostProcessor接口来处理javaBean的初始化信息
package bean;public interface Person {public void say();}
package bean;import java.util.List;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;public class Student implements Person{private String name;private String info;private int age;private List<String> count; public String getName() {return name;}public void setName(String name) {this.name = name;}public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void say (){System.out.println("students " +name+" "+age+" : "+info);}public List<String> getCount() {return count;}public void setCount(List<String> count) {this.count = count;}}
package bean;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;public class ProcessorTest implements BeanPostProcessor {@Overridepublic Object postProcessAfterInitialization(Object bean, String arg1)throws BeansException {System.out.println("初始化开始.......");if(bean instanceof Student){Student stu=(Student)bean;if(stu.getAge()==0){stu.setAge(21);}}return bean;}@Overridepublic Object postProcessBeforeInitialization(Object bean, String arg1)throws BeansException {System.out.println("初始化结束.......");return bean;}}
<?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 id="stuList" class="bean.School"><property name="stuList"><list><ref bean="student1" /><ref bean="student2" /></list></property></bean><bean id="student1" class="bean.Student"><property name="name"><value>小李</value></property><property name="info"><value>我们是小李</value></property><property name="age"><value>23</value></property></bean><bean id="student2" class="bean.Student"><property name="name"><value>小王</value></property><property name="info"><value>我们是小王</value></property><property name="age"><value>25</value></property></bean></beans>
package comMain;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;import bean.Person;import bean.ProcessorTest;import bean.School;public class TestSpringBean {/** * @param args */public static void main(String[] args) { TestSpringBean test=new TestSpringBean();//test.getInfo();test.getInfo1();}public void getInfo1(){//ApplicationContext ctx=new FileSystemXmlApplicationContext("WebContent/WEB-INF/springXml/Info.xml");Resource resource=new ClassPathResource("/springXml/Info.xml");XmlBeanFactory factory=new XmlBeanFactory(resource);//容器中注册BeanPostProccessor来实现javabean的预处理和后处理ProcessorTest pr=new ProcessorTest();factory.addBeanPostProcessor(pr);School school=(School)factory.getBean("stuList"); school.getInfo();}}
运行结果:
2013-8-7 10:26:39 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions信息: Loading XML bean definitions from class path resource [springXml/Info.xml]初始化结束.......初始化开始.......初始化结束.......初始化开始.......初始化结束.......初始化开始.......have 2 students我们是小李23have 2 students我们是小王25
- spring 容器中注册BeanPostProccessor来实现JavaBean的预处理和后处理
- Spring中JavaBean简单的预处理与后处理
- Spring MVC 中 HandlerInterceptorAdapter的使用 预处理、后处理、返回处理
- 预处理和后处理阶段的链接
- 用jsp+javabean实现用户注册和查看的功能
- 对方进行预处理和后处理的两种方法
- Spring 的 webapplicationContext容器中bean的注册过程。
- 使用Aspect来对访问方法进行预处理和后处理
- 取Spring容器中注册的Bean之捷径GOOD
- 向Spring MVC容器中注册的方式
- Spring容器启动后自动执行Servlet进行预处理
- Spring容器启动后自动执行Servlet进行预处理
- Spring容器启动后自动执行Servlet进行预处理
- Spring容器启动后自动执行Servlet进行预处理
- Spring容器启动后自动执行Servlet进行预处理
- Spring的bean后处理器和容器后处理器
- Spring的bean后处理器和容器后处理器
- Servlet+JavaBean实现注册和登陆
- SVN命令行命令
- UitableView 之间的视图切换
- NaN总结(不断更新中)
- imageview 显示sd卡图片
- IOS开发学习笔记(十七)——使用地理位置及地图(中篇)
- spring 容器中注册BeanPostProccessor来实现JavaBean的预处理和后处理
- xmlns
- net常考的面试题
- javaAPI(String、StringBuffer、StringBuilder)
- socket套接字错误代码详解
- 人不成熟的几大特征-----海尔集团CEO张瑞敏演讲稿
- 从数据库选取代表性的记录
- Spring MVC 整合 Freemarker
- 虚拟内存,MMU/TLB,PAGE,Cache之间关系