Spring设计目标:Spring为开发者提供一个一站式轻量级应用开发平台;

Spring设计理念:在JavaEE开发中,支持POJO和JavaBean开发方式,使应用面向接口开发,充分支持OO(面向对象)设计方法;Spring通过IoC容器实现对象耦合关系的管理,并实现依赖反转,将对象之间的依赖关系交给IoC容器,实现解耦;

Spring框架的核心:IoC容器和AOP模块。通过IoC容器管理POJO对象以及他们之间的耦合关系;通过AOP以动态非侵入的方式增强服务。

IoC让相互协作的组件保持松散的耦合,而AOP编程允许你把遍布于应用各层的功能分离出来形成可重用的功能组件。

Spring的优缺点是什么?

优点

  • 方便解耦,简化开发

    Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护,交给Spring管理。

  • AOP编程的支持

    Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。

  • 声明式事务的支持

    只需要通过配置就可以完成对事务的管理,而无需手动编程。

  • 方便程序的测试

    Spring对Junit4支持,可以通过注解方便的测试Spring程序。

  • 方便集成各种优秀框架

    Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的直接支持(如:Struts、Hibernate、MyBatis等)。

  • 降低JavaEE API的使用难度

    Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。

缺点

  • Spring明明一个很轻量级的框架,却给人感觉大而全
  • Spring依赖反射,反射影响性能
  • 使用门槛升高,入门Spring需要较长时间

Spring框架的设计目标,设计理念,和核心是什么相关推荐

  1. Spring 框架的设计理念与设计模式分析

    Spring 的骨骼架构 Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图: 图 1 .Spring 框架的总体架构图 从上图中可以看出 Spring ...

  2. Spring框架的设计理念与设计模式分析

    spring设计原理 Spring框架的设计理念与设计模式分析 2016-1-27 by Damon 摘要:Spring作为现在最优秀的框架之一,被广泛的使用并有很多对其分析的文章.本文将从另外一个视 ...

  3. 【spring】【转】Spring 框架的设计理念与设计模式分析

    http://www.cnblogs.com/sunwei2012/archive/2010/12/09/1901184.html Spring 的骨骼架构 Spring 总共有十几个组件,但是真正核 ...

  4. 多图详解Spring框架的设计理念与设计模式

    Spring作为现在最优秀的框架之一,已被广泛的使用,51CTO也曾经针对Spring框架中的JDBC应用做过报道.本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的 ...

  5. Spring框架核心之(一)Spring简介

                                                            Spring简介 一.什么是Spring Spring是一个轻量级开源框架,他是一个基于 ...

  6. Spring 系列: Spring 框架简介

    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架. 在这篇由三部 ...

  7. Spring 系列: Spring 框架

    第一部分:Spring 框架简介 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序 ...

  8. Spring框架学习【从入门到精通】

    文章目录 初识Spring框架 时代变迁 Spring的野心 官网 框架组成 核心概念 三大核心组件的关系 主要jar组成 Spring框架两大核心:IoC和DI 概念 IoC DI IoC的XML方 ...

  9. 春天来啦:Spring框架概述

    SPRING框架--由来和发展 Spring是 java平台上的一个 开源应用框架.它的第一个版本是由 Rod Johnson写出来的.Rod在他的Expert One-On-One Java EE ...

最新文章

  1. Anaconda环境下OpenCV的安装
  2. 在html中写typescript,5分钟上手TypeScript
  3. 华为浏览器推荐关闭_华为手机的不明照片是哪来的?这3个设置得关闭,否则128G也不够...
  4. vnctf——cm1
  5. 如何用python进行相关性分析_如何在python中检查连续变量和分类变量之间的相关性?...
  6. 解决HbuiderX将uni-app开发的项目运行到小程序编译后文件vendor.js太大的问题
  7. jq之hide(1000)
  8. 调整心态,正确应对所学技术的失宠?(至F#,SL的学习者们)
  9. 前端:CSS/11/CSS浮动和清除,CSS继承性,CSS优先级
  10. Android开发笔记(二十九)使用SharedPreferences存取数据
  11. iPhone开发教程 UI基础课程(58课时)
  12. “=” “:=” 区别
  13. css背景图毛玻璃,css实现背景图片的毛玻璃效果
  14. 集成学习-蒸汽量预测案例
  15. java课程设计代码_java(课程设计之记事本界面部分代码公布)
  16. coreldrawx4缩略图显示不出来_CDR缩略图不显示怎么办?CorelDRAW缩略图不显示解决办法 - 优优下载站...
  17. [IOS]——播放器AVPlayer的实现
  18. 第3章-线性概率模型(1)-logistics/probit模型
  19. 使用beautifulsoup4,爬取一波贴吧的表情包
  20. C语言程序——输入三角形的边长求面积

热门文章

  1. 使用渐进式JPG改善用户体验
  2. 本地存储和音视频的属性和方法
  3. B2B2C商城系统该如何运营?
  4. 一个Tor浏览器0day漏洞价值100万美元,其中的隐情是……
  5. 52jdss经典说说:生活处处是陷阱,在不知到的情况下也许你就陷入绝境、、、
  6. C字符串逆序、C++字符串逆序
  7. tensorflow2.3实现猫狗数据集图像语义分割(一)
  8. 二:用solcjs编译solidity代码
  9. 问题 C: 重铸神器(dp+哈希)
  10. 海量案例!生成对抗网络(GAN)的18个绝妙应用