from:http://cuihongxin1030.javaeye.com/blog/405487
一、 IoC(Inversion of control): 控制反转
1、IoC:
概念:控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系
核心:bean工厂;在Spring中,bean工厂创建的各个实例称作bean
二、AOP(Aspect-Oriented Programming): 面向方面编程
1、 代理的两种方式:
静态代理:
针对每个具体类分别编写代理类;
针对一个接口编写一个代理类;
动态代理:
针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理类
2、 AOP的主要原理:动态代理
Spring工作原理
Spring 已经用过一段时间了,感觉Spring是个很不错的框架。内部最核心的就是IOC了,
动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射
反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置
文件来动态的创建对象,和调用对象里的方法的 。
Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是
在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过
配置类达到的。
Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明
管理的(Spring根据这些配置 内部通过反射去动态的组装对象)
要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。
Spring里用的最经典的一个设计模式就是:模板方法模式。(这里我都不介绍了,是一个很常用的设计模式)
Spring里的配置是很多的,很难都记住,但是Spring里的精华也无非就是以上的两点,把以上两点跟理解了
也就基本上掌握了Spring.
sunlightcs (架构师)的说法:
struts是一个MVC框架,当用户浏览网页的时候,呈现给用户的页面就是V,当用户发送请求的时候,就会在struts的配置文件里到处理此请求的
ACTION(这就是C),ACTION调用相应的业务组件,完成相应的业务时(这就是M),又会到struts的配置文件里寻找对应的页面,返回页面给
用户。整个流程就这个样子。
其中M层做的事比较多,所有的业务功能都在这里实现(当然也有一些不规范的写法,把业务写在ACTION里),如果要与数据库交互,M层就要调用
数据库了,通过Hibernate实现,Hibernate主要是跟数据库打交道.
其中,所有的业务功能及ACTION以及DAO都可以交给SPRING管理,SPRING的最常用的功能是IOC、AOP,IOC就是通过依赖注
入把所有的BEAN交给SPRING管理;AOP实现的功能很多,比如:所有的服务层都要有事务,可以通过AOP拦截所有服务层的类,再通过IOC把事务
注入进去了。
SSH整合:
http://www.blogjava.net/action/archive/2007/08/28/140566.html
SSH在项目中的作用及原理
http://blog.csdn.net/dustin_ren/archive/2009/03/31/4038601.aspx
自己动手写spring
http://www.javaeye.com/topic/413449
posted on 2010-05-27 23:14
豪情 阅读(3608)
评论(2) 编辑 收藏 所属分类:
Spring