Spring框架是一种独立于不同J2EE应用,支持不绑定到特定J2EE服务和可重用业务及数据访问对象的WEB集合框架。
Spring的最大特点,IOC控制反转,AOP面向切面编程,及支持MVC。
1. IOC控制反转
IOC控制反转通俗来讲,就是不需要创建具体对象,在使用时才通过IOC完成注入,就好像是银行开支票(支票是虚拟的,并不是真的钱)给你用,你只要拿着支票去消费就可以,而商家在你消费之后,向银行拿钱,银行再将钱这个实体转给商家,当然银行可以和商家商量,将其他有价值的东西等价返给商家也可以的,比如黄金,白银。这种思想其实本质上讲也是面向接口编程的一种思想,运行前期阶段不创建对象,只是通过配置文件指定对象的创建方式,而实现对象创建的过程交给IOC容器完成,这样做的好处就是达到依赖和应用程序的彻底分离。就是说,以后我要实现同一段业务,我只要换个配置就可以了,不用再重新编写应用。
2.AOP
AOP面向切面编程,其实就是利用动态代理的原理,把面向同多个方法或者业务的处理抽取出来作统一处理,具体应用就是事务处理,这个是真的爽啊。面向切面编程让我们以前繁琐的代码都变得简单了,而且更重要的是,让我们方便的重用某些逻辑或服务。
基本概念点
切面(Aspect),就是那个横切多个对象的模块。例如事务处理可以作为一个切面。
连接点(JointPoint),执行过程中某个特定的点,一个连接点总是代表一个方法的执行,连接点为调用advice时提供信息。
切入点(PointCut),就是拦截规则,符合该切入点执行条件的advice将得到运行。
通知(advice),通知就是制定要运行的具体实现,通知有多种类型,例如(beforeAdvice, AfterAdvice, AroundAdvice,ThrowAdvise等)
3.MVC
SPRING框架很好地支持MVC的实现,这个具体应用将在之后的实践中摸索。