【Spring学习01】Spring简介

本文博客地址:http://blog.csdn.net/soonfly/article/details/68496879 (转载请注明出处)

一、Spring介绍

spring直译是春天,所以以前开发时经常叫它春哥。实际上应该取弹性、跳跃的意思,指让代码更加灵活解耦,易于扩展。
百度百科上解释:

Spring是分层的JavaSE/EE full-stack轻量级开源框架,以IoC(Inverse of Control反转控制)和AOP(Aspect Oriented Programming 面向切面编程)为内核……

这里涉及到两个关键词,那就是Ioc和AOP,弄明白这两个知识点,Spring的核心也就掌握了一大半了。下面通过一个小案例先理解一下什么是Ioc和AOP。

二、Ioc和AOP

我们知道在设计模式中,有个很重要的指导性思想叫开闭原则,亦称OCP原则:对扩展开放,对修改闭合。
啥意思呢?假设我们开发了一套管理系统,每收到一笔订单后,系统调用message.notify(Sender)给客户发送订单成功邮件(Sender是发送器类)。有天老板(也有可能是产品)突然要改个需求:将原来的向客户发送邮件改为发手机短信。你无需改动任何代码,只是在配置中将“发送器Sender”改成手机,就完成了工作。这里将发送器Sender作为参数传给message.notify方法,就是IoC(控制反转:Inverse of Control)。因为Sender不是在message.notify方法内生产的,而是在外部创建好,然后注入给message.notify方法使用的,这个过程中对Sender类的控制权移到了外部,因此叫控制反转。
过了几天,老板觉得收到订单后,除了要给客户发送通知外,还要扩展一个功能:给自己再发个通知(假设通知格式、内容不同于发给客户的)。这时本着OCP原则,我们不改动原有的任何代码,只需写新的通知功能的实现代码,然后装配到原来的程序上去就完成了。如果老板过几天说这功能不要了,那么你也可以很轻松的卸载下来。在发通知这个事情上,我们可以根据需要增加、删除任何事件,而不需要改动原有的程序,这就是AOP(Aspect Oriented Programming的缩写,意为:面向切面编程)。随着后面文章的深入,会专门对AOP做讲解,现在先了解一下就好。

上面说的Ioc,AOP这些方法,在没有spring的时侯,其实我们也能自己通过代码做到。现在有了spring,我们可以更轻松快捷做到以上的事情。

三、应用场景

1、Web应用程序:
在Web应用程序应用场景中,典型的三层架构:数据模型层实现域对象;数据访问层实现数据访问;逻辑层实现业务逻辑;web层提供页面展示;所有这些层组件都由Spring进行管理,享受到Spring事务管理、AOP等好处,而且请求唯一入口就是DispachterServlet,它通过把请求映射为相应web层组件来实现相应请求功能。

2、远程访问:
Spring能非常方便的提供暴露RMI服务,远程访问服务如Hessian、Burlap等,实现非常简单,只需通过在Spring中配置相应的地址及需要暴露的服务即可轻松实现,后边会有介绍。

四、总结

spring有两个很重要的实现,就是上面提到的:控制反转思想(用容器来进行类之间的联系)面向切面编程思想(采用了设计模式中的动态代理模式)。它能使得我们可以很好的书写遵守开闭原则的软件代码,轻松面对需求的变更。

本文博客地址:http://blog.csdn.net/soonfly/article/details/68496879 (转载请注明出处)

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值