Spring overview

Overview

Spring 框架是一个轻量级的解决方案,也是一个有潜力的一站式企业级方案。但是Spring是模块化的,可以按需所取。可以使用不带任何web框架的 IoC 容器,也可以只用 Hibernate集成代码JDBC 抽象层。Spring 框架支持声明式的事务管理,通过 RMI 或 web services 远程访问业务逻辑,以及各种持久化数据。Spring提供了完整的 MVC 框架,让你可以把 AOP 清晰地集成进软件中。

Spring 被设计成非侵入式的,意思是说你的逻辑代码基本上不依赖于框架本身。集成层(比如数据访问层)中,会存在一些对于数据访问技术 和 Spring 库的依赖。但是,很容易将这些依赖从代码中独立出来。

Spring 简介

Spring 支持用POJO(Plain Old Java Objects)构建应用。还可以:

  • 不需要事务 API 就可以执行一个数据事务的 Java 方法。
  • 不需要远程 API 就可以让本地 Java 方法执行方法远程调用。
  • 不需要 JMX API 就可以让本地 Java 方法执行管理操作。
  • 不需要 JMS API 就可以让本地 Java 方法执行消息处理。

依赖注入和控制反转

Java 平台虽然提供了丰富的应用开发功能,但是缺少意义上的把基本功能块组成一个完整大块的能力,把这个任务留给了开发者和架构师。虽然有各种设计模式,工厂模式,Builder模式什么的,可以把各种类组装成一个应用,但是这些模式只是一个最佳实践的名称,具体的代码还得自己实现。
Spring 框架的 IoC(Inversion of Control)组件解决这个问题的方式是:把完全不想干的组件组合成一个完整的应用。Spring 框架把设计模式当作 “一级对象”,可以直接集成进应用。

反转了什么控制?Martin Fowler 认为应该把它叫做 依赖注入,这样可以更好的解释控制反转。

Spring 模块

这里写图片描述

Spring 框架包含了大约20个模块, 分类为:
- Data Access/Integration
- spring-jdbcJDBC抽象层
- spring-tx:管理 计划性和声明式的事务
- spring-ormorm API,包括 JPAHibernate
- spring-oxmObject/XML 映射
- spring-jmsJava 消息服务
- Web
- spring-web:基本的web功能,比如文件上传等。
- spring-webmvc:也叫Web-Servlet,包括MVC和 REST web services。
- spring-websocket
- AOP
- spring-aop
- Aspects
- spring-aspects:集成AspectJ。
- Instrumentation
- spring-instrument
- spring-instrument-tomcat
- Messaging
- spring-messagingMessageMessageChannelMessageHandler
- Core Container
- spring-core框架的基础部分,包括IoC和依赖注入。
- spring-beans:框架的基础部分。
- spring-context
- spring-context-support
- spring-expression
- Test
- spring-test:支持用JUnit或TestNG的unit testintegration test

使用场景

典型的成熟的Spring Web 应用

Spring 的 声明式事务管理功能 让Web 应用完全事务化,就像是在使用EJB的容器管理事务,所有的自定义业务逻辑可以用简单的POJO实现,并且由 Spring 的 IoC 容器管理。其他的像发送邮件以及验证之类的这种独立于 web 层,让你可以选择在哪里执行验证规则。Spring 的 ORM 是由集成的 JPA 和 Hibernate 支持的。

使用第3方web框架的Spring 中间层

Spring 可以与其他UI框架集成,比如前端的 Struts,Tapestry,JSF之类的,并不强制使用所有的Spring的模块,而只使用Spring的事务功能,可以使用ApplicationContextWebApplicationContext 集成业务逻辑到web 层。

远程访问使用场景

如果想通过web services 访问现有代码,可以用 Spring 的Hessian-Rmi-HttpInvokerProxyFactoryBean 等类。

EJBs,封装现有的POJOs

Spring 还提供了用于企业 JavaBeans 的 访问和抽象层。可以重用现有的POJOs,把它们封装进无状态的session beans。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值