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. python学习之with...as语句

    python中的with...as...语句类似于try...finally...语句: # -*- coding: utf-8 -*- # """ with...as. ...

  2. myeclipce怎么破解

    MyEclipse安装文件下载,下载地址 http://www.jb51.net/softs/150886.html 你也可以进入官方网站下载:http://www.myeclipsecn.com/d ...

  3. Android Studio无法启动,gradle下载不了 提示“building “ 项目名”gradle project info”

    Google在2013年I/O大会上发布了Android Studio,AndroidStudio是一个基于IntelliJ思想的新的Android开发工具.下面介绍一下Android Studio安 ...

  4. Prerender Application Level Middleware - ASP.NET Core Middleware

    In the previous post Use Prerender to improve AngularJS SEO, I have explained different solutions at ...

  5. oracle+SQL优化实例

    1.     减少I/O操作: SELECT COUNT(CASE WHEN empno>20 THEN 1 END) c1,COUNT(CASE WHEN empno<20 THEN 1 ...

  6. GridView解决同一行item的高度不一样,如何同一行统一高度问题?

    问题描述: 有时我们使用GridView会面对类似这种情况. 这是是不是一脸愣逼,我们理想情况是把他变成这样 保证同一行的item都是一样高这样就美观许多了 注意:上面的两张图片是盗图,用来作为效果观 ...

  7. 第二百三十九节,Bootstrap路径分页标签和徽章组件

    Bootstrap路径分页标签和徽章组件 学习要点: 1.路径组件 2.分页组件 3.标签组件 4.徽章组件 本节课我们主要学习一下 Bootstrap 的四个组件功能:路径组件.分页组件.标签组件 ...

  8. 【BZOJ】2020: [Usaco2010 Jan]Buying Feed, II (dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2020 和背包差不多 同样滚动数组 f[j]表示当前位置j份食物的最小价值 f[j]=min(f[j- ...

  9. 优秀的Android资源

    今天,收藏了一下“优秀的Android资源”,以后有时间也学习学习. 一.开发工具 开发android第一步就是安装开发工具SDK,国内有一些机构和公司对些作了境像,这个网站作了详细统计列表:http ...

  10. json 字符串 对象 互转

    json对象,json字符串,不注意的话,很容易忽视混淆.例举几个容易混的情况 1,php将变量放到input框中,通过js去读取出来的是json字符串,要想使用就要将json字段串转成json对象 ...