Spring之初识

初识Spring

Spring是java平台一个轻量级的解决方案,也就是说它是非侵入式的,即你的业务逻辑本身对spring框架没有依赖。但是spring也可以作为一站式的企业级解决方案,从最核心的依赖注入,到事务管理、AOP、ORM、web、消息、远程调用等都具有相应的模块,它被设计为模块化的,我们只需要选用我们需要的那些模块即可。

 依赖注入和控制反转

Spring的核心是依赖注入(DI)和控制反转(IOC),其实两者说的是一个意思。任何一个应用程序都由多个组件(类和对象)相互协作而正常提供服务,相互协作的组件之间存在相互的调用关系,此谓之依赖。

依赖的存在导致应用程序不容易被扩展。因此解耦成了设计中一个极为重要的方面。但是依赖总是存在的,spring设计了一种统一的模式,它通过容器全权负责的组件的装配,它会把符合依赖关系的对象通过JavaBean属性或者构造函数传递给需要的对象。通过JavaBean属性注射依赖关系的做法称为设值方法注入(Setter Injection);将依赖关系作为构造函数参数传入的做法称为构造器注入(ConstructorInjection)。

和以往相比,spring是容器负责依赖的注入,而不是传统的具体调用者负责依赖的注入,此之谓控制反转。

Spring模块

Spring的核心是IOC容器,但它实际上包含20多个模块,这些模块被分为核心容器(Core Container)、数据访问/集成(Data Access/Integration)、Web、AOP(AspectOriented Programming)、Instrumentation、Messaging、Test,如官方文档下图所示:

 

 

核心容器

如上图所示,核心容器包含四个模块,

其中 spring-corespring-beans 模块是spring framework的基础,包括控制反转和依赖注入,核心接口为BeanFactory.

spring-context构建在以上两个模块之上,并且对BeanFactory进行扩展,并提供对其他框架的集成。

spring-expression 是类似于OGNL和JSF EL的表达式语言,能够在运行时构建复杂表达式,存取对象属性、对象方法调用等。

AOP and Instrumentation

Spring-aop提供了aspect-oriented programming的实现,允许你定义方法拦截器和切入点来更好的解耦。

Instrumentation 提供了对不同的application server集成所需的工具和类加载器。

Messaging

提供对消息的集成。

数据访问/集成

包含JDBC, ORM, OXM, JMS和Transaction.

Spring-jdbc是对java jdbc的抽象和封装。

Spring-tx提供编程或者声明式的事务管理。

Spring-orm提供对流行的orm的集成,包括jpa、hibernate等。

Spring-oxm提供抽象的object/XMLmapping,以支持如JAXB ,XMLBEAN等。

Web

主要提供与web集成的一些支持,如springMVC

test   

spring的单元测试和集成测试。

结束语

本篇为spring的简单介绍,尤其是对其各个模块的介绍全部来自spring官方文档。由于本人初学spring,很多地方表述不清,欢迎指正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值