Spring In Action读书笔记

一.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声明了销毁方法,就调用该方法。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。