Spring概述

Spring是最受欢迎的企业级Java应用程序开发框架。数以百万的来自世界各地的开发人员使用Spring框架来创建好性能、易于测试、可重用的代码。

Spring框架是一个开源的Java平台,它最初是由Rod Johnson编写的,并且在2003年6月手册在Apache2.0许可下发布。Spring是轻量级的。Spring框架的基础版本是2MB左右,Spring框架的核心特性是可以用于开发任何Java程序的,但是在Java EE平台上构建web应用程序是需要扩展的。Spring框架的目标是使J2EE开发变得更容易使用,通过启用POJO编程模型来促进良好的编程实践。

使用Spring框架的好处

下面列出使用Spring框架的主要的好处:

  1. Spring可以是开发人员使用POJOs开发企业级的应用程序。只是用POJOs的好处是你不需要一个EJB容器产品,比如一个应用程序服务器,但是你可以选择使用一个健壮的servlet容器,比如Tomcat或者一些商业产品。
  2. Spring在一个单元模式中是有组织的。即使包和类的数量非常大,你可以只要你需要的,而忽略剩余的那部分。
  3. Spring不会让你白费力气做重复的工作,它真正利用了一些现有的技术,像几个ORM框架,日志框架,JEE,Quartz和JDK计时器,其他的视图技术。
  4. 测试一个用Spring编写的应用程序很容易,因为environment-dependent代码被放进了这个框架中。此外,通过使用JavaBean-style POJOs,它在使用一类注入注入测试数据时变的更容易。
  5. Spring的web框架是一个设计良好的WebMVC框架,它为web框架,比如Structs或者其他工程上的或者很少受欢迎的web,提供了一个很好的供替代的选择
  6. 将特定技术的异常(例如,JDBC,Hibernate,或者JDO抛出的异常)翻译成一致的,Spring提供了一个方便的API,而这些都是未经检验的异常。
  7. 轻量级的 IOC 容器往往是轻量级的,例如,特别是当与 EJB 容器相比的时候。这有利于在内存和 CPU 资源有限的计算机上开发和部署应用程序。
  8. Spring 提供了一个一致的事务管理界面,该界面可以缩小成一个本地事务(例如,使用一个单一的数据库)和扩展成一个全局事务(例如,使用 JTA)。

依赖注入(DI)

Spring最认同的技术是控制反转的依赖注入(DI),控制反转(IoC)是一个通用概念,它可以用很多种不同的方式表达,依赖注入仅仅是控制反转的一个具体的例子。

什么是依赖注入:这里讲依赖关系部分转化为两个类之间的关联。例如,类A依赖于类B,注入指的是类B将通过IoC被注入到类A中。

面向方面的程序设计(AOP):

Spring框架的另一个关键组件是面向方面的程序设计(AOP)框架。一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑,有各种各样常见的很好的关于方面的例子,比如日志记录,声明性事物,安全性,和缓存等。

在OOP中模块化的关键单元是类,而在AOP中模块化的关键单元是方面。AOP帮助你讲横切关注点从他们所影响的对象中分离出来,然而依赖注入帮助你将你的应用程序对象从彼此中分离出来。

Spring-Spring概述的更多相关文章

  1. Spring Integration概述

    1.   Spring Integration概述 1.1     背景 Spring框架的一个重要主题是控制反转.从广义上来说,Spring处理其上下文中管理的组件的职责.只要组件减轻了职责,它们同 ...

  2. Spring Cloud 概述

    1. Spring Cloud 引言 首先我们打开spring 的官网:https://spring.io/ 我们会看到这样一张图片 这个图片告诉我们,开发我们的应用程序就像盖楼一样, 首先我们需要搭 ...

  3. (转)Spring的概述

    http://blog.csdn.net/yerenyuan_pku/article/details/69663685 Spring的概述 什么是Spring 据度娘所载: Spring是一个开源框架 ...

  4. 微服务与Spring Cloud概述

    微服务与Spring Cloud随着互联网的快速发展, 云计算近十年也得到蓬勃发展, 企业的IT环境和IT架构也逐渐在发生变革,从过去的单体应用架构发展为至今广泛流行的微服务架构. 微服务是一种架构风 ...

  5. Spring IOC 概述

    Spring IOC 概述 IOC(Inversion of Control) 控制反转,也叫 DI(D_ependency injection_) 依赖注入.是一种设计思想.不过我并不同意所谓反转的 ...

  6. 1.Spring 框架概述

    目录 Spring 框架概述 1 我们所说的 "Spring "是什么意思 2. Spring和Spring框架的历史 3. 设计理念 4.反馈和贡献 5.开始使用 Spring ...

  7. Spring系列之初识Spring Spring概述

    初始Spring 啥是Spring? 下面这个就是Spring Spring当然不是上面那个Spring,Spring之所以命名为Spring是因为这个开源的轻量级的开源框架的出现给软件行业带来了春天 ...

  8. 四、Spring——Spring MVC

    Spring MVC 1.Spring MVC概述 Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet负责截获请求并将其分配给响应的处理器处 ...

  9. Java匹马行天下之J2EE框架开发——Spring—>Spring框架知多少

    ————也许我注定成不了一个伟大的人,但是至少我可以做一个很棒的自己.我想我现在应该做的不是瞻前顾后,而是活在当下,正确认知自己,做好自己现在的工作,努力提升自己的能力,踏踏实实地做一个程序员 一.思 ...

  10. Spring - Spring Boot - Actuator Web 访问开启

    1. 概述 打开 Spring Boot Actuator 的 Web 访问 2. 场景 之前看 Spring 的时候, 曾经想了解当时的配置 后来发现, 确实有这么个工具 刚开始发现, 除了 act ...

随机推荐

  1. [转载]mac下查看.mobileprovision文件及钥匙串中证书.cer文件

    一. mobileprovision文件查看 xxx.mobileprovision是ios开发中的设备描述文件,里面有证书信息.调试设备的UUID信息.bundle identifier等,此文件是 ...

  2. Freemarker自定义方法

    在项目中有一个需求,每个物品有一个guid,存在数据库中,而在页面上需要显示一个对应的业务数据值,暂且叫做serverId,serverId是通过guid移位计算得来.serverId只需要显示,后台 ...

  3. iOS swift 启动页加载广告(图片广告+视频广告)

    一般app在启动的时候都会有广告页,广告页用来加载自己的或者第三方的广告,广告的展示形式也多种多样,最近在看swift相关的东西,这里将提供支持加载图片广告和视频广告的解决方案 思路: 我们知道在加载 ...

  4. CSRF学习笔记之CSRF的攻击与防御以及审计【00x2 】

    Medium完整代码: <?php if (isset($_GET['Change'])) { // Checks the http referer header if ( eregi ( &q ...

  5. Linux下配置Hadoop全分布式环境

    1. 前提 部署全分布式环境,我们肯定不能在一台服务器上了,这里我用了7台服务器,在VMware上开了7个虚拟机,如下图所示: 我基本配置了一晚上才搞定,第一次配置一般都有错,这时候不妨去到hadoo ...

  6. SVN 提交出错:Attempted to lock an already-locked dir

    http://www.2cto.com/kf/201306/221414.html —————————————————————————————————————————————————————— 在ec ...

  7. easyUI的column的field的颜色属性

     {field:'hasPrintStr',title:'状态',width:10,halign:'center',align:'right',styler: function(value,row,i ...

  8. ASP.NET中常用的26个优化性能方法

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多 次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET 中提供了 连 ...

  9. Oracle 计算两个时间的差值

    有两个日期数据START_DATE,END_DATE,欲得到这两个日期的时间差(以天,小时,分钟,秒,毫秒):天:ROUND(TO_NUMBER(END_DATE - START_DATE))小时:R ...

  10. 【POJ】2942 Knights of the Round Table(双连通分量)

    http://poj.org/problem?id=2942 各种逗.... 翻译白书上有:看了白书和网上的标程,学习了..orz. 双连通分量就是先找出割点,然后用个栈在找出割点前维护子树,最后如果 ...