浅析Spring

 首先,Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说:Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。

 一.Spring的核心

(1)控制反转IOC:对象的控制权交由容器去解决,由容器去根据配置文件创建实例并创建各个实例之间的依赖关系。简而言之就是将之前需要需要去new一个对象,并调用对象这种繁琐的活交给Spring容器自行去完成,它会根据配置文件在恰当的时机去创建对象,并调用对象的属性或方法。

(2)面向切面AOP:允许通过分离应用的业务逻辑与系统级服务(例如事务管理)进行内聚性的开发。简单来说就是可以对指定的对象进行监督和控制,在调用这个对象的具体方法的前后去调用你指定的模块。通俗点说就是例如你设计了一个纵向流程,然后你可以选择在纵向流程上切一刀,加入新的东西,这样在程序走到这一步的时候去执行新的东西,然后接着走纵向流程。

 面向切面的基本知识点:

 1)Aspect(切面):通常是一个类,里面可以定义切入点和通知

 2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用。

 3)Advice(通知):AOP在特定的切入点上执行的增强处理,方式有before,after,afterReturning,afterThrowing,around

 4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式。

 基本的通知类型:

 1)Before:在目标方法被调用之前做增强处理,@Before只需要指定切入点表达式即可。

 2)AfterReturning:在目标方法正常完成后作增强处理,@AfterReturning除了指定切入点表达式后,还可以指定一个返回值returing,代表目标方法的返回值

 3)AfterThrowing:主要用来处理程序中未处理的异常,@AferThrowing除了指定切入点表达式后,还可以指定一个throwing的返回值形参名,可以通过该形参名来访问目标方法中所抛出的异常对象。

 4)After:在目标方法完成之后做增强。@After可以指定一个切入点表达式。

 5)Around:环绕通知,在目标方法完成前后作增强处理,环绕通知是最重要的通知类型,像事物、日志等都是环绕通知,注意编程中核心是一个ProceedingJoinPoint

  二.Spring和SpringMVC的联系

 Spring和SpringMVC其实是一对父子关系,SpringMVC是Spring扩展出的一个web端框架。

 Spring是一个大的框架容器,它可以粘合各个组件模块,进行统一管理调配。

 Spring(父容器)并不能直接访问SpringMVC(子容器)所注入的对象,但是SpringMVC却可以访问到Spring装载的对象。

 SpringMVC其实有点类似Struts,都是实现了MVC的设计模式,不同的是Struts的入口是filter,SpringMVC的入口是Servlet,还有就是使用注解的话,SpringMVC是零配置,而Struts则需要很多配置。

posted @ 2017-08-04 16:37  叮叮棒  阅读(149)  评论(0)    收藏  举报