来看spring进门(4) spring中Bean的性命周期总结
在1995年5月23日以“Java”的名称正式发布了。Spring中Bean的性命周期,在进修spring的过程当中bean的性命周期了解对进修spring有很年夜的匡助,上面我就分离先容在ApplicationContext和BeanFactory中Bean的性命周期。
1、在ApplicationContext中Bean的性命周期
性命周期实行的历程以下:
1、需找一切的bean依据bean界说的信息来实例化bean
2、利用依附注进,spring按bean界说信息设置bean的一切属性
3、若bean完成了BeanNameAware接口,工场挪用Bean的setBeanName()办法传送bean的ID。
4、若bean完成了BeanFactoryAware接口,工场挪用setBeanFactory()办法传进工场本身。
5、若bean完成了ApplicationContextAware()接口,setApplicationContext()办法会被挪用
6、若BeanPostProcessor和bean联系关系,
则它们的postProcessBeforeInitialization()办法被挪用
7、若bean指定了init-method="init"办法、,它将被挪用。
8、如有BeanPostProcessor和bean联系关系,
则它们的postProcessAfterInitialization()办法被挪用
注重:经由过程已上操纵,此时的Bean就能够被使用的体系利用,并讲保留在BeanFactory工场中直到不再必要为止.但我们也能够经由过程9大概10举行烧毁
9、若bean完成了DisposableBean接口,distroy()办法被挪用
10、假如指定了destroy-method="close"定制的烧毁办法,就挪用这个办法
案例剖析:
创立一个实体Bean代码以下:
packagewww.csdn.spring.dao;
importorg.springframework.beans.BeansException;
importorg.springframework.beans.factory.BeanFactory;
importorg.springframework.beans.factory.BeanFactoryAware;
importorg.springframework.beans.factory.BeanNameAware;
importorg.springframework.beans.factory.DisposableBean;
importorg.springframework.beans.factory.InitializingBean;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.ApplicationContextAware;
publicclassHelloDaoImplimplementsBeanNameAware,BeanFactoryAware,
InitializingBean,ApplicationContextAware,DisposableBean{
privateStringcontent;
publicHelloDaoImpl(){
System.out.println("----------HelloDaoImpl实例化");
}
publicvoidsetContent(Stringcontent){
System.out.println("----------经由过程依附注进的内容是:"+content);
this.content=content;
}
@Override
publicvoidsetBeanName(StringbeanId){
System.out.println("----------输入BeanId:"+beanId);
}
@Override
publicvoidsetBeanFactory(BeanFactoryfactory)throwsBeansException{
System.out.println("----------factory:"+factory.getClass());
}
@Override
publicvoidsetApplicationContext(ApplicationContextapplicationContext)
throwsBeansException{
System.out.println("----------"+applicationContext);
}
@Override
publicvoidafterPropertiesSet()throwsException{
System.out.println("----------afterPropertiesSet");
}
publicvoidinit(){
System.out.println("----------初始化办法");
}
@Override
publicvoiddestroy()throwsException{
System.out.println("----------bean被烧毁");
}
publicvoidclose(){
System.out.println("----------close");
}
}<p>
J2ME在手机游戏开发的作用也是无用质疑的。至于桌面程序,可能有人说java不行,界面不好看,但是请看看NetBeans和Eclipse吧,他们都是利用java开发的,而他们的界面是多么的华丽,所以界面决不是java的缺点。还有一个不得不提的优点就是大多java人员都挂在嘴边的java的跨平台性,目前这确实也是java优点之一。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 是一种语言,用以产生「小应用程序(Applet(s)) 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
页:
[1]