SpringFramework的简介
一、前言
Spring提供了一种轻量级的解决方案,用于建立“快装式企业应用”。在此基础上,Spring还提供了包括声明式事务管理,RMI或Web Services远程访问业务逻辑,以及可以多种方法进行的持久化数据库地解决方案。另外,Spring还有一个全功能的 MVC框架,并能透明的把 AOP 集成到你的软件中去。
二、简介
Java应用(从applets的小范围到全套n层服务端企业应用)是一种典型的依赖型应用,它就是由一些互相适当地协作的对象构成的。因此,我们说这些对象间存在依赖关系。
Spring的IoC控件主要专注于如何利用classes、对象和服务去组成一个企业级应用,通过规范的方式,将各种不同的控件整合成一个完整的应用。Spring中使用了很多被实践证明的最佳实践和正规的设计模式,并且进行了编码实现。如果你是一个,构架师或者开发人员完全可以取出它们集成到你自己的应用之中。这对于那些使用了Spring Framework的组织和机构来说,在spring基础上实现应用不仅可以构建优秀的,可维护的应用并对Spring的设计进行验证,确实是一件好事情。
2.1概览
Spring框架包含许多特性,并被很好地组织在下图所示的七个模块中。本节将依次介绍每个模块。
Core
Core 封装包是框架的最基础部分,提供IoC控制反转和依赖注入特性。这里的基础概念是BeanFactory
,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式
和Context的透明创建,比如说通过Servlet容器。
DAO
DAO 提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC 封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs就是普通类(plain old Java
objects)都适用。
ORM
ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。
AOP
Spring的 AOP 封装包提供了符合 AOP Alliance规范的面向方面的编程(aspect-oriented programming)实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清
晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中,这有点象.Net的attribute的概念。
Web
Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IoC容器初始化和针对Web的application context。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结
合。
MVC
Spring中的 MVC 封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种 清晰的 分离模型,在领域模型代码和web form之间。并且,还可以借助Spring框架的其他特
性。
未完待续......
转载于:https://www.cnblogs.com/yejiaojiao/p/5955389.html
SpringFramework的简介相关推荐
- Tomcat 配置和spring-framework MVC配置简介
Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME.然后找这个变量所指的目录下的conf文件夹,从中读取配置文件.最重要的配置文件:server.xm ...
- 0502-Hystrix保护应用-简介,使用,健康指标等
一.概述 参看地址:https://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html#_circuit_ ...
- RabbitMQ 简介
为什么80%的码农都做不了架构师?>>> RabbitMQ 简介 MQ 消息队列,上承生产者,下接消费者.从生产者侧获取消息,然后将消息转发给消费者. 由此可见,MQ必须具有两 ...
- SpringCloud系列十二:SpringCloudSleuth(SpringCloudSleuth 简介、SpringCloudSleuth 基本配置、数据采集)...
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringCloudSleuth 2.具体内容 Sleuth 是一种提供的跟踪服务,也就是说利用 sleuth 技术 ...
- kaptcha验证码组件使用简介
kaptcha验证码组件使用简介 Kaptcha是一个基于SimpleCaptcha的验证码开源项目. 官网地址:http://code.google.com/p/kaptcha/ kaptcha的使 ...
- Spring核心技术之IOC容器(一):IOC容器与Bean简介
最近开始研究Spring框架,今天学习Spring的核心内容IOC 与 Bean 1. Spring IOC 与 Bean 简介 Inversion of Control (IoC)即控制反转,也叫 ...
- Spring框架简介
Spring框架简介 Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本. ...
- MyBatis简介与配置MyBatis+Spring+MySql
一.MyBatis简介与配置MyBatis+Spring+MySql 原文出自:http://limingnihao.iteye.com/blog/781671 MyBatis学习 之 一.MyBat ...
- Redis简介和Redis Template用法整理
Redis简介 Redis使大规模互联网应用常用的内存高速缓存数据库,它的读写速度非常快.Redis是目前使用最广泛的内存数据存储系统之一.它支持更丰富的数据结构,支持数据持久化.事务.HA(高可用H ...
最新文章
- 《Hadoop MapReduce性能优化》一1.3 Hadoop MapReduce的工作原理
- 软件测试度量计算方法有哪些,软件测试度量(三)
- Nginx模拟负载均衡
- php正则实例,php 正则表达式实例详解(适合初学者)
- 全球最快65W闪充!OPPO Reno Ace正式发布 高达限量定制版售价仅3599元
- java 局部变量空间 大小_变量作用域-1:局部变量 和成员变量、各种变量内存分配的大小...
- 这是阿里人手机里,这一年最舍不得删的照片
- 牛客网Java刷题知识点之调用线程类的start()方法和run()方法的区别
- 计算机组成原理——基础知识
- Apache ShenYu 网关正式支持 Dubbo3 服务代理
- Codeforces 1090C New Year Presents
- 地图影像图数量存储大小精度推算
- vlookup使用步骤_vlookup怎么用(vlookup具体使用方法详细步骤)
- 最新爬虫(2019.07)淘宝页面登陆滑块验证 selenium + chromedriver 爬取淘宝信息
- shp与geojson互转
- C语言编程>第十一周 ⑤ 请编写一个函数,用来删除字符串中的所有空格。
- java8新特性-stream对map集合进行过滤的方法
- Guitar Pro中变调夹的使用方法
- 通达oa考勤可以代打吗_考勤管理
- 4+ 非常经典的hub基因鉴定路线
热门文章
- mysql5.7.17版本介绍_mysql5.7.17版本升级源码方式及恢复主主复制
- 8086汇编常用代码总结(个人向),包含换行函数(过程),执行输出,结束程序
- 面向对象的23种设计模式
- 电路知识--认识原理图(二)
- Python中Function(函数)和methon(方法)
- 记录 之 遇到的 lamda 表达式和功能理解
- linux删除某个path_linux 从path中去掉某个
- forward_list的insert操作
- Linux永久挂载新的硬盘
- 局部静态变量Static详解