从全局来看Spring

6 篇文章 0 订阅
6 篇文章 0 订阅

Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,

使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。通过Spring的体系结构图如下,可以看出Spring主要由5个模块组成。

1.IOC模块

2.AOP模块

3.数据访问和集成模块

4.web及远程访问模块

5.测试框架模块

IOC模块

所谓IOC( Inversion of Control)控制反转,即是控制资源获取的方向,Spring将类和类之间的依赖从代码中脱离出来,用配置的方式进行依赖关系描述,由IOC容器负责依赖类之间的创建、拼接、管理、获取等工作。BeanFactory接口是Spring框架的核心接口,它实现了容器许多核心的功能。
Context模块构建与核心模块之上,扩展了BeanFactory的功能,添加了i18n国际化、Bean生命周期控制、框架时间体系、资源加载透明化等多项功能。此外,该模块还提供了许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问等。ApplicationContext是Context模块的核心接口。

AOP模块

AOP是继OOP之后,对编程设计思想最大的技术之一。AOP是进行横切逻辑编程的思想,它开拓了人们考虑问题的思路。在AOP模块里,SPirng提供了满足AOP Alliance规范的实现,此外,还整合了AspectJ这种语言级的框架。Spring的这种做法给我们开发者提供了众多的选择。
所谓AOP其实就是从传统的面向对象编程转换为面向切面编程,就是在执行某些代码前执行另外的代码,使程序更灵活、扩展性更好,可以随便的添加删除某些功能。
切面编程提供了一种机制,在执行业务前后执行另外的代码。将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。
servlet中的filter便是一种AOP思想的实现。
跟Filter一样,Spring的AOP也需要实现特定的接口。SPring把这些实现了特定AOP接口的类称为拦截器(Interceptor)
AOP中较为难理解的三个名词有:切面aspect,通知Advisor,切入点Pointcut,总结一句话就是:“切入点”负责往“什么地方”插入代码,而“通知”负责插入“什么代码”。

数据访问和集成模块

网上一直流传有一个梗:JavaEE是什么?是增删改查;虽然有些偏激,但话糙理不糙,任何应用程序,其核心的问题是数据的访问和操作。
Spring站在DAO的抽象层面,建立了一套面向DAO层统一的异常体系,同时将各种访问数据的检查型异常转换为非检查型异常,为整合各种持久层框架(如MyBatis、Hibernate)提供基础。其次,Spring通过模块化技术对各种数据访问技术进行了薄层的封装,将模块化的代码隐藏起来,使数据访问的程序得到大幅简化。这样Spring就建立起了和数据形式及访问技术无关的统一的DAO层,借助AOP技术,SPring提供了声明式事务的功能。

Web及远程访问

Spring自己提供了一个完整的类似于Struts的MVC框架,称这为SpringMVC。在实际应用中,其实WEB层框架我更倾向于用SpringMVC而不是struts2,除了师出豪门Spring,更重要的一点是SpringMVC在URL的处理上更加优雅。当然喽,适合自己的才是最好的,不然说再多也没用。

Spring带给了我们什么

从一个开发者的角度来回答这个问题,我觉的主要有以下一点:
1.方便解耦,简化开发;
2.AOP编程的支持;
3.声明式事务的支持
4.方便程序的测试
5.方便集成各种优秀框架
6.降低javaEE的开发难度
7.其核心源码是经典学习范例:对于任何一个学习Spring的初学者而言可能都不止一次的听到过Spring源码的精巧。确实Spring框架源码无疑是java技术的最佳实践的范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值