一.Spring采用4种策略降低Java开发复杂度
基于POJO的轻量级和最小侵入性编程
依赖注入和面向接口实现松耦合
基于切面和惯例进行声明式编程
通过切面和模板减少样板式代码
PS:POJO
POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。
使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。
二.依赖注入的三种方式
接口注入
Setter方法注入
构造方法注入
具体可参考:
依赖注入:让组件依赖于抽象,当组件要与其他实际对象发生依赖关系时,通过抽象来注入依赖的实际对象。 最大的好处是松耦合。
三.Spring最常用的三种应用上下文
1)ClassPathXmlApplicationContext:从classpath处获取xml文件来加载一个上下文。
2)ClassPathXmlApplicationContext:从文件系统中获取xml文件来加载一个上下文。
3)XmlWebApplicationContext:从web应用获取xml文件来加载一个上下文。
这三个类都是ApplicationContext接口的实现。
使用:
ApplicationContext context = new ClassPathXmlApplicationContext("config.xml");//config.xml在src目录下
ApplicationContext context = new FileSystemXmlApplicationContext("d:/config.xml");
四.Bean的生命周期
传统Java应用中的: new进行实例化,就可以被使用,一旦不被使用,JVM自动回收
Spring容器中的Bean:
实例化,填充属性,(如果实现相应接口就)传BeanID,传BeanFactory容器实例,传应用上下文的引用,调用postProcessBeforeInitialization(),调用afterpropertiesSet(),如果声明了init-method,也调用该方法,调用postProcessAfterInitialization方法。
此时已经可以被应用程序使用,将一直驻留在应用上下文中,直到该应用上下文被销毁。
如果Bean实现了DisosableBean接口,调用destroy()接口方法,如果用destroy-method声明了销毁方法,就调用该方法。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。