码迷,mamicode.com
首页 > 编程语言 > 详细

spring简介

时间:2017-09-04 21:25:39      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:tle   简化   入侵   变量   回滚事务   环境   http   模块   菜鸟   

初学spring,想慢慢的把自己对spring的学习理解记录下来,当然因为是初学,在记录的过程中会参照各位大牛的理解思路,因为在前辈们的理解中菜鸟才能更快的进步。

一、什么是Spring:

    百度一下会发现一致的概念是:Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。、但是发现看完这句话并不能体会到spring的强大,没事先上图看一下spring长啥样

技术分享

这是spring的结构图,然而直到他长啥样了现在貌似并不怎么认识他,没事,接下就一点一点认识spring的各个组成部分

二、spring核心架构体系(此处参照:http://www.cnblogs.com/wxisme/p/4751397.html)

  由上图我们会看到,spring是由五个部分组成的: Core Container、AOP、Web、Data Access、Test,我想将spring比作一个大家族的大管家,

而这五个部分是大管家的五项能力,没有卓越的能力,大管家又怎么能管理好一个家族呢。接下来我们就看一下大管家到底有啥本领:

1.Core Container------核心容器

   1)Core 模块:是框架的最底层的部分,spring也是代码不是吗,肯定也是遵守编程的通用知识的,比如类型转换、资源访问等,也就是大管家也是人嘛,人的基本样子还是有的;

   2)Beans模块:是框架基础模块,包括了IOC的依赖注入和反转控制,核心的Bean Factory,大管家需要在家中缺少人手的时候能够协调各处的人手;

  3)Context模块:以Core和Beans为基础,集成Beans模块功能并添加资源绑定、数据验证、国际化、Java EE支持、容器生命周期、事件传播等;核心接口是ApplicationContext。大管家在家中必须由必要的权利,Context就像大管家拥有管理家中事务的权利一样,能够代表Spring的上下文。

 4)EL模块提供强大的表达式语言支持,支持访问和修改属性值,方法调用,支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从Spring 容器获取Bean,它也支持列表投影、选择和一般的列表聚合等。显而易见EL是大管家的表达能力

2.AOP、ASpects------面向切面编程

 AOP的思想类似于在一个家中具体到某一件事的执行时,大管家要安排这件事哪些人来做,每个人的任务是啥,怎么开始,怎么收尾,整个流程操控一遍。

 

 

  • AOP 模块提供了面向方面的编程实现,允许你定义方法拦截器和切入点对代码进行干净地解耦,它实现了应该分离的功能。

  • Aspects 模块提供了与 AspectJ 的集成,这是一个功能强大且成熟的面向切面编程(AOP)框架。

  • Instrumentation 模块在一定的应用服务器中提供了类 instrumentation 的支持和类加载器的实现。

  • Messaging 模块为 STOMP 提供了支持作为在应用程序中 WebSocket 子协议的使用。它也支持一个注解编程模型,它是为了选路和处理来自 WebSocket 客户端的 STOMP 信息

3.Data Access数据访问/集成

  • Transactions事务模块:该模块用于Spring管理事务,只要是Spring管理对象都能得到Spring管理事务的好处,无需在代码中进行事务控制了,而且支持编程和声明性的事务管理。

  • JDBC模块:提供了一个JBDC的样例模板,使用这些模板能消除传统冗长的JDBC编码还有必须的事务控制,而且能享受到Spring管理事务的好处。

  • ORM模块:提供与流行的“对象-关系”映射框架的无缝集成,包括Hibernate、JPA、MyBatis等。而且可以使用Spring事务管理,无需额外控制事务。

  • OXM模块:提供了一个对Object/XML映射实现,将java对象映射成XML数据,或者将XML数据映射成java对象,Object/XML映射实现包括JAXB、Castor、XMLBeans和XStream。

  • JMS模块:用于JMS(Java Messaging Service),提供一套 “消息生产者、消息消费者”模板用于更加简单的使用JMS,JMS用于用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

4.WEB

    Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成,它们的细节如下:

  • Web 模块提供了基本的面向 web 的集成功能,例如多个文件上传的功能和使用 servlet 监听器和面向 web 应用程序的上下文来初始化 IoC 容器。

  • Web-MVC 模块包含 Spring 的模型-视图-控制器(MVC),实现了 web 应用程序。

  • Web-Socket 模块为 WebSocket-based 提供了支持,而且在 web 应用程序中提供了客户端和服务器端之间通信的两种方式。

  • Web-Portlet 模块提供了在 portlet 环境中实现 MVC,并且反映了 Web-Servlet 模块的功能。

 5.Test

       测试模块支持对具有 JUnit 或 TestNG 框架的 Spring 组件的测试。

三、这样我们就了解了spring的具体是什么:

1)、Spring的核心是一个轻量级(Lightweight)的容器(Container)。
2)、Spring是实现IoC(Inversion of Control)容器和非入侵性(No intrusive)的框架。
3)、Spring提供AOP(Aspect-oriented programming)概念的实现方式。
4)、Spring提供对持久层(Persistence)、事物(Transcation)的支持。
5)、Spring供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装。
6)、Spring提供了对现存的各种框架(Structs、JSF、Hibernate、Ibatis、Webwork等)相整合的方案。
总之,Spring是一个全方位的应用程序框架。
四、我们也大概了解spring能做什么:

1).Spring能帮我们根据配置文件创建及组装对象之间的依赖关系。

2).Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。

3)、在传统应用程序当中,我们如何来完成数据库事务管理?需要一系列“获取连接,执行SQL,提交或回滚事务,关闭连接”,而且还要保证在最后一定要关闭连接,多么可怕的事情,而且也很无聊;如果采用Spring,我们只需获取连接,执行SQL,其他的都交给Spring来管理了,简单吧。所以,Spring能非常简单的帮我们管理数据库事务。

4)、Spring还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板,来方便数据库访问。

5)、Spring还提供与第三方Web(如Struts、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。

6)、Spring能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)。

 

spring简介

标签:tle   简化   入侵   变量   回滚事务   环境   http   模块   菜鸟   

原文地址:http://www.cnblogs.com/Actexpler-S/p/7475536.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!