Spring(一)Spring框架基础概念

转载请注明出处:http://blog.csdn.net/github_39430101/article/details/77872157

Spring简介

Spring是一个开源的轻量级Java SE/Java EE开发应用框架,其目的是用于简化企业级应用程序开发。Spring框架可以帮助我们管理对象以及对象之间的关系,提供了安全控制,日志记录,数据库事务等。本身提供了一套自己的web层的框架Spring MVC,一套简洁的JDBC模板,而且还可以与第三方框架完美集成,功能无比强大。

Spring包含哪些模块

这里写图片描述

  • spring-core:
    封装了框架依赖的最底层部分,包括资源访问。类型转换和一些常用的工具类
  • spring-beans:
    提供了框架的基础部分,包括反转控制和依赖注入。
  • spring-context:
    以spring-core和spring-beans为基础,扩展了spring-beans模块功能增加了资源绑定、数据验证。国际化、容器生命周期等。
  • spring-expression模块:
    提供了强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器、算数和逻辑运算。
  • AOP:
    Spring AOP模块提供了面向切面编程,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,并且能动态的把这些功能添加到需要的代码中。
  • 事务模块:
    该模块用于Spring管理事务,无需在代码中进行控制,支持编程和声明性的事务管理。
  • JDBC模块:
    提供了一个简洁的JDBC模板
  • ORM模块:
    提供与第三方框架诸如Hibernate、MyBatis等无缝集成,而且可以使用Spring事务管理。
  • OXM模块:
    提供了一个对Object/XML映射关系实现,将XML数据映射成Java对象,或者将Java对象映射成XML数据。
  • JMS模块:
    提供了一套消息生产者和消息消费者模块,用于两个应用程序之间,或分布式系统中发送消息,进行异步通信。
  • Web模块:
    提供了基础的Web功能。例如多文件上传、集成IOC容器、远程访问和Web Service支持,还支持restful风格。
  • Spring MVC:
    Spring MVC框架提供了基于注解的请求资源注入、更简单的数据绑定、数据验证等以及jsp标签。
  • Web-Struts模块:
    与Struts2无缝集成
  • Test模块:
    Spring支持Junit和TestNG测试框架,而且还提供了一些基于Spring的测试功能。

Spring IOC和AOP概念

IOC的核心思想是解耦。假设a与b之间如果有a = new b();那么a对象的组件就依赖的b,其实这样写没有问题,不如说现在你想把你的代码改为 a = new c();来完成你的需求,你需要改写a的代码,而IOC的理念就是在于让你不需要改动a的代码,通过配置文件或者注解来达到动态编译(反射机制)。如果只改这一个需求完全不需要IOC,但是一个项目代码量基本都很大,这时候通过自己改动每个类以及维护对象之间的关系就会特别麻烦,然后就有大神就设计出了IOC容器,让容器管理这些对象。IoC和DI有什么关系呢?其实它们是同一个概念的不同角度描述,由于控制反转概念比较含糊(可能只是理解为容器控制对象这一个层面,很难让人想到谁来维护对象关系),所以大师级人物Martin Fowler又给出了一个新的名字:“依赖注入”,相对IoC 而言,“依赖注入”明确描述了“被注入对象依赖IoC容器配置依赖对象”。

AOP:有个简单的理解,就是在别人做好的程序外面可以套一个程序,比如以前的程序员做完了一个方法A(),后来他离职或调走了,你也没有源代码,但现在业务要求在执行这个方法时要写一个日志信息,那么你就用AOP来实现,实现AOP的某些接口,当方法A被执行的时候就会触发你做的写日志的功能,类似数据库的触发器,这样做的好处时原来做的方法A()不用做任何修改,它甚至不知道有这么回事,而你的程序又可以基于它的运行结果等实现你的功能需求,达到解耦的目的。

小结

Spring致力于简化企业级Java开发,促进代码的松散耦合。成功的关键在于依赖注入和AOP。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值