《Spring揭秘》读书笔记一:Spring框架总体结构
一、Core:整个Spring框架都是构建在Core核心模块之上。核心模块提供了IoC容器、框架内部使用的工具类(BeanWrapper对对象的属性赋值比反射更方便、DataSourceUtils用于管理数据库连接等)。IoC容器可以帮助我们以 依赖注入的方式管理对象之间的依赖关系。
二、AOP:Spring提供了轻量的AOP框架,只支持方法执行级别的AOP,可以覆盖80%的需求。采用Proxy模式构建,经历了从静态代理到动态代理的转变过程。配合IoC容器,可以采用注解的方式将AOP的逻辑(Pointcut、Advice)编写在普通的POJO内。
三、数据访问和事务:
1、数据访问:JDBC访问数据的方式较为底层,每次操作都有固定的模板,会导致大量重复代码的出现。Spring采用模板方法模式,将通用固定的步骤抽出,将有多种情况的细节部分采用 回调接口或者是 抽象方法的形式由调用者自行实现,由此诞生了 JDBCTemplate。
2、事务:Spring的事务管理抽象层是 SpringAOP的最佳实践,直接构建在SpringAOP之上,使用策略模式抽象出了统一的PlatformTransactionManager,使用时再选择具体的实现。而各个具体的实现又是采用了 模板方法模式,由AbstractPlatformTransactionManager提供了事务管理的通用模板,然后各个具体子类只需要实现 部分细节就可以。
四、SpringMVC:相比于其他的Web MVC框架,Spring MVC很好的抽象出了职责分明的各个角色(DispatcherServlet、HandlerMapping、Controller、ViewResolver、View),请求处理流程十分清晰。并且,天然支持Spring IoC和AOP,这是很大的优势。