Spring该讲座
看看今天Spring。
国内搞Java开发的朋友们。对Spring一定不会陌生。
Spring的历史?
谈起Spring。就会想起Ejb2.0。虽然。现实中有非常多基于Ejb2.0的成功系统,可是Ejb2.0并没有实现它的最初设想:简化企业级应用开发。Ejb的声明式编程模式的确简化了非常多基础架构层面的开发,比方事务、安全等等,可是Ejb2.0的模板式编码让人感到异常复杂。
为了简化Ejb,Spring诞生了。
Spring以AOP和IOC为核心,为JavaBean提供了像Ejb一样强大的功能。这些技术为POJO提供了类似于Ejb的声明式编程模型,却没有引入不论什么Ejb的复杂性。
之后,Spring与Ejb相互学习,在Ejb3.0中。借鉴了Spring的轻量;而Spring借鉴了Ejb的分布式。无论Spring与Ejb是竞争还是合作吧。反正它们在简化我们的开发。
什么是Spring?
Spring是JavaEE开发中轻量级开源框架。以IOC(Inverse of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层Spring MVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术。此外,Spring一个非常大的特点,它并不像Ejb那样单打独斗,Spring集成了大量的第三方类库。用于和其它框架进行集成。
真正实现面向接口编程。
为什么使用Spring?
Spring是一个开源项目,是一个中间件,更是一个框架。那我们为什么使用Spring呢?有人说:框架这样的东西,最開始接触Java的时候,做好不要使用。
还是要从Java基础的东西学起;有人说:Spring这个框架真是太棒了。它的IOC可以写出更加面向接口的程序;它的AOP是OOP的更好的一个补充。
对,这两种说法我都很允许。
为了更好的理解Spring。我们要掌握好Java的基础。而就工作编码而言,Spring确实是很好的工具。
所以。不同的阶段。不同的对待。
Spring的优势?
轻量——Spring是非侵入式的,也就是说,Spring应用中的对象不依赖Spring的接口或者抽象类。
IOC——提起IOC,我就会想起JNDI。JNDI是对象主动从容器中查找依赖;而IOC是指容器在对象初始化时不等对象请求就主动将依赖传递给它。
Spring通过应用上下文(ApplicationContext)装载Bean的定义并把他们组装起来。
ApplicationContext负责对象的创建和组装。然后主动注入给对象使用。
AOP——Spring提供了面向切面编程的支持,同意通过分离应用的业务逻辑与切入性服务(如事务管理、日志、权限)进行内聚行开发。
容器——Spring包括并管理应用对象的配置和生命周期。在这个意义上它是一个容器。
框架——Spring能够简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式的组合,典型是在一个XML里面。
SpringMVC——类似于Struts2的一个web框架。
Spring概览
IOC
spring 核心模块实现了 IOC 的功能,用配置文件或者注解的方式,描写叙述类之间的依赖关系,由IOC容器负责依赖类之间的创建、拼接、管理、获取等工作, BeanFactory 接口是Spring 框架的核心接口,它实现了容器很多核心的功能。
使用Spring,我们最主要使用的功能;Spring的其它功能。大多都是基于IOC的扩展。
Context 模块构建于核心模块之上。扩展了 BeanFactory 的功能,加入了UI支持、 Bean生命周期控制、框架事件体系、资源载入透明化等多项功能。此外,该模块还提供了很多企业级服务的支持,如邮件服务、任务调度、 JNDI 定位、 EJB 集成、远程訪门等。
ApplicationContext是 Context 模块的核心接口。
Context是Spring做好的扩展,增强了Spring的功能。
数据訪问/集成
数据訪问/集成层包含JDBC,ORM,OXM。JMS和事务处理模块,每个模板的功能例如以下
JDBC模块提供了不再须要冗长的JDBC编码相关了JDBC的抽象层。
ORM模块提供的集成层。流行的对象关系映射API。包含JPA,JDO。Hibernate和iBatis。
OXM模块提供了一个支持对象/ XML映射实现对JAXB。Castor,使用XMLBeans,JiBX和XStream 的抽象层。
Spring能够不用与Hibernate或者iBatis、myBatis集成。Spring内部集成了SpringJDBC模板,SpringJDBC也算是Spring旗下的一个非常好用的Orm子框架;
此外,Spring也常常会与Hibernate、iBatis、myBatis集成。
Java消息服务JMS模块包括的功能为生产和消费的信息。
这是Spring扩展的对JMS的支持。
事务模块支持编程和声明式事务管理实现特殊接口类。
不论什么应用程序。其核心的问题是对数据的訪问和操作。数据有非常多表现形式,如数据表、XML、消息等,而每种数据形式又拥有不同的数据訪问技术(如数据表的訪问既能够直接通过JDBC,也能够通过Hirnate或iBatis)。
Spring站在DAO的抽象层面,建立了一套面向DAO层统一的异常体系,同一时候将各种訪问数据的检查型异常转换为非检查型异常。为整合各种持久层框架提供基础。其次。Spnng通过模板化技术对各种数据訪问技术进行了薄层的封装。将模式化的代码隐藏起来,使数据訪问的程序得到大幅简化·这样,Spring就建立起了和数据形式及訪问技术无关的统一的DAO层,借助AOP技术,Spring提供了声明式事务的功能。
SpringMVC
Spring的作用是整合,但不只限于整合,Spring框架能够被看做是一个企业解决方式级别的框架。client发送请求,由DispatcherServlet完毕请求的转发,控制器调用一个用于映射的类HandlerMapping。该类用于将请求映射到相应的处理器来处理请求。HandlerMapping将请求映射到相应的处理器Controller(相当于Action),在Spring其中假设写一些处理器组件,一般实现Controller接口。在Controller中就能够调用一些Service来进行数据操作,ModelAndView用于存放dao中的数据。还能够存放相应视图的数据。假设想将处理结果返回给用户,那么在Spring框架中还提供了一个视图组件ViewResolver,该组件依据Controller返回的标示,找到相应的视图,将相应Response返回给用户。
SpringMVC是Spring旗下的子项目。与Struts2功能相仿。可是内部实现却大不同样。在与Spring集成方面,SpringMVC有着先天的优势,另外。也没有出现像Struts2那么多安全漏洞。
如今越来越受到大家的青睐。
以上内容,多为參照网络上的资源:包含百度百科、开源中国、网友博客以及《Spring实战》等资料。
之前打算偷偷懒不写总结的。看看书、看看资料就过去。只是,勿以善小而不为,小而为之勿以恶。所以,他决定做这方面的知识汇总。
版权声明:本文博主原创文章,博客,未经同意不得转载。
Spring该讲座的更多相关文章
- 2017技术核心——Spring
从毕业从事Java WEB开始到现在已差不多快5年时间了,一直使用的Spring相关的技术,其实最主要的是SpringMVC这一块.其实,一直停留在用的地步,并不知晓其原理,真正耐下心来去研究Spri ...
- idea的maven项目下spring与mybatis整合
两周前学习mybatis框架,参考了网上多位大神的博客,但因为各种原因(不解释)总是没法成功搭建环境并运行项目.周末花了点时间阅读了文档并整理之前琐碎的内容,解决掉之前遇到的问题.现将整合环境的关键步 ...
- 基于spring注解AOP的异常处理
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...
- 玩转spring boot——快速开始
开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...
- Spring基于AOP的事务管理
Spring基于AOP的事务管理 事务 事务是一系列动作,这一系列动作综合在一起组成一个完整的工作单元,如果有任何一个动作执行失败,那么事务 ...
- [Spring]IoC容器之进击的注解
先啰嗦两句: 第一次在博客园使用markdown编辑,感觉渲染样式差强人意,还是github的样式比较顺眼. 概述 Spring2.5 引入了注解. 于是,一个问题产生了:使用注解方式注入 JavaB ...
- 学习AOP之透过Spring的Ioc理解Advisor
花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...
- 学习AOP之深入一点Spring Aop
上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实 ...
- 学习AOP之认识一下Spring AOP
心碎之事 要说知道AOP这个词倒是很久很久以前了,但是直到今天我也不敢说非常的理解它,其中的各种概念即抽象又太拗口. 在几次面试中都被问及AOP,但是真的没有答上来,或者都在面上,这给面试官的感觉就是 ...
随机推荐
- 每天进步一点点——Linux文件锁编程flock
转载请注明出处:http://blog.csdn.net/cywosp/article/details/30083015 1. 场景概述 在多线程开发中.相互排斥锁能够用于对临界资源的保护,防 ...
- 【cocos2d-x】尝鲜 Cocos Code IDE(不断更新)
Cocos Code IDE 是一个基于 Eclipse 的跨平台 IDE ,专门为 cocos2d lua & js 开发者准备,通过此工具.你能够方便的创建游戏project.编写而且调试 ...
- Android应用程序绑定服务(bindService)的过程源码分析
Android应用程序组件Service与Activity一样,既能够在新的进程中启动,也能够在应用程序进程内部启动:前面我们已经分析了在新的进程中启动Service的过程,本文将要介绍在应用程序内部 ...
- JVM的参数详解(转)
12年毕业到先在处理第一年外这几年纯属于打酱油,当初自学Java然后就出来找工作了,还有第一家面试就通过了挺幸运的 但之后的这段时间一直是处于吃老本的状态.最近心情真的很不好,各种黄老邪!一直处于堕落 ...
- HDU2149-Public Sale
Public Sale Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- Android Property Animation 物业动画
效果图: Property Animation介绍: 出生在sdk3.0,是利用了View所拥有的属性,进行一系列的操作. 比方一个View有什么样的setAbc的属性,那么理论上就能够设置它. ...
- 2014.06.14 GlusterFS技术交流视频
6月14线下GlusterFS视频交流.高清视频是非常好的,我初听言论方面,谈到迅速,似乎不是很清楚,讲座结束后速度需要改进.谢谢能力的天空AbleSky高大内设,谢谢学生参加. 在线公开课:http ...
- WPF学习(4)逻辑树和可视树
前面几节说了一些WPF的基础,包括XAML和布局等.在接下来的几节,我们来说说WPF的核心概念,包括逻辑树和可视树.依赖对象和依赖属性.路由事件.命令这几个部分.本节介绍下逻辑树(Logical Tr ...
- 结构的具体说明sublime text 2/3的Golang开发环境
1.下载并安装sublime text 2/3 官网下载:http://www.sublimetext.com/ 2.安装成功sublime text后.启动sublime text.选择菜单栏&qu ...
- 二十9天 月出冲击黑鸟 —Spring的AOP_AspectJ @annotation
6月14日,阴转雨. "四面垂杨十里荷,向云何处最花多, 画楼南畔夕阳和.天气乍凉人寂寞, 光阴须得酒消磨,且来花里听笙歌." 面向切面的框架AspectJ邂逅Spring,不仅造 ...