首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring学习小结

2012-08-31 
Spring学习总结!1.?Spring的官方定义是:一个轻量级的IoC和Aop容器框架,它使用了一种叫做依赖注入的技术。所

Spring学习总结!

1.


?Spring的官方定义是:一个轻量级的IoC和Aop容器框架,它使用了一种叫做依赖注入的技术。

所谓依赖注入,就是指将创建对象以及协议依赖对象之间合作的责任从对象自身中转移到“工厂”中去,这个“工厂”通常由IoC容器提供。

Struts2与Spring的集成要用到Spring插件包,这个包是同 Struts2一起发布的。Spring插件是通过覆盖Struts2的ObjectFactory来增强核心框架对象的创建。当创建一个对象的时候,它会用Struts2配置文件中的class属性去和Spring配置文件中的id属性进行关联,如果能找到则由Spring创建,否则由Struts2框架自身创建,然后由Spring来装配。Spring插件具体有如下几个作用:

1. 允许spring来创建Action、Interceptror和Result

2. 由Struts创建的对象能够被Spring装配

3. 提供了2个拦截器来自动装配action,如果没有使用Spring ObjectFactory的话

这里要注意的是,我们不必在Spring中去注册action,尽管我们可以这么去做,通常Struts框架会自动的从action mapping中创建action对象。

当指定struts.objectFactory为spring时,struts2框架就会把bean转发给spring来创建,装配,注入。但是bean创建完成之后,还是由struts容器来管理其生命周期。.
需要注意的一个地方:Spring中的缺省作用域是Singleton作用域。而往往Action属于有状态的bean,应该使用prototype作用域。如果忽略这个细节,在我们方便实用set,get方法处理数据的时候,可能会有线程安全上的风险。

这个属性用于说明Struts2的 对象池创建工厂,Struts2也有自己的对象池,就像Spring那样,在配置文件中你可以引用对象池中的对象,你可以借助于Spring中的对象池,当想要得到Spring中的对象池时,申明struts.objectFactory为Spring的对象池构建工厂

2.

切面aspect:? 把横切的关注点(如安全性检查方法)抽取出来,将其放到一个类中,这个类就叫切面

通知advice: 是对横切关注点的实现,如checkSecurity()方法

切入点pointCut: 安全性检查的范围,即由切入点表达式判断在哪个方法(连接点Joinpoint)上执行checkSecurity()

?

明明白白AOP(傻瓜也会心领神会!)

http://stamen.iteye.com/blog/1512388

?

?

3、Spring两种容器:

BeanFactory容器、应用上下文ApplicationContext

Bean工厂延迟载入所有的Bean,直到getBean()方法被调用时bean才被创建。

上下文则是在启动时预载入所有的单实例Bean,确保当你需要的时候它已经准备好了,不需要等待他们被创建。

?


Spring对接口实现类通过Dynamic Proxy实现AOP,而对于没有实现任何接口的类通过CGLIB实现AOP机制

对于没有实现接口的类 生成字节增强码的代理 其实就是生成真正实现类的子类

热点排行