《spring生命周期(代码实现,超详细)资料》由会员分享,可在线阅读,更多相关《spring生命周期(代码实现,超详细)资料(9页珍藏版)》请在金锄头文库上搜索。
1、1. 创建Spring项目首先创建一个简单的spring项目,我用的是MyEclipse10.步骤如下:1.1新建Java项目(MySpring)不要忘了引入spring 的jar文件1.2创建包(com.xcm.beanlife)1.3在包下面创建以下文件代码如下:PersonService.javapackage com.xcm.beanlife;import org.springframework.beans.BeansException;import org.springframework.beans.factory.BeanFactory;import org.springframe
2、work.beans.factory.BeanFactoryAware;import org.springframework.beans.factory.BeanNameAware;import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.InitializingBean;import org.springframework.context.ApplicationContext;import org.springframework.context.Applic
3、ationContextAware;public class PersonService implements BeanNameAware,BeanFactoryAware,ApplicationContextAware,InitializingBean,DisposableBeanpublic PersonService()System.out.println(1)PersonService()函数调用);public String getName() return name;public void setName(String name) System.out.println(2)setN
4、ame(String name)调用);this.name = name;private String name;public void sayHi()System.out.println(Hi +name);public void setBeanName(String arg0) / TODO Auto-generated method stubSystem.out.println(3)setBeanName 调用+arg0);/传递Bean工厂public void setBeanFactory(BeanFactory arg0) throws BeansException / TODO
5、Auto-generated method stubSystem.out.println(4)setBeanFactory(BeanFactory arg0)调用+arg0);public void setApplicationContext(ApplicationContext arg0)throws BeansException / TODO Auto-generated method stubSystem.out.println(5)setApplicationContext(ApplicationContext arg0)调用+arg0);public void afterProper
6、tiesSet() throws Exception / TODO Auto-generated method stubSystem.out.println(6)afterPropertiesSet();/通过注解的方法配置init-method方法/PostConstructpublic void init()System.out.println(7)我自己的init()方法。);public void destroy() throws Exception / TODO Auto-generated method stubSystem.out.println(8)destroy().);pu
7、blic void MyDestory()System.out.println(8)MyDestroy().自己的des方法。);MyBeanPostProcessor.javapackage com.xcm.beanlife;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;public class MyBeanPostProcessor implements BeanPostProcessor public Obj
8、ect postProcessAfterInitialization(Object arg0, String arg1)throws BeansException / TODO Auto-generated method stubSystem.out.println(postProcessAfterInitialization(Object arg0, String arg1);/System.out.println(arg0+创建时间为+new java.util.Date();return arg0;public Object postProcessBeforeInitialization
9、(Object arg0, String arg1)throws BeansException / TODO Auto-generated method stubSystem.out.println(postProcessBeforeInitialization(Object arg0, String arg1);return arg0;beans.xml测试文件App2.javapackage com.xcm.beanlife;import org.springframework.beans.factory.BeanFactory;import org.springframework.bea
10、ns.factory.xml.XmlBeanFactory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.core.io.ClassPathResource;public class App2 /* * param args */public static void main(String args) / TODO Auto-gene
11、rated method stub/ApplicationContext ac=new ClassPathXmlApplicationContext(com/xcm/beanlife/beans.xml);BeanFactory factory=new XmlBeanFactory(new ClassPathResource(com/xcm/beanlife/beans.xml);PersonService ps=(PersonService) factory.getBean(personService);ps.sayHi();2.Spring 生命周期(1) 实例化(2)调用set方法设置属性(3)如果你实现了bean名字关注接口(BeanNameAware) 则,可以通过setBeanName获取id号(4)如果你实现了 bean工厂关注接口,(BeanFactoryAware),则可以获取BeanFactory(5)ApplicationContextAware接口(6)bean后置处理器关联(7)如果你实现InitializingBean接口,则会调用afterPropertiesSet见上图(8)在bean定义自己的初始化方法.