Spring是一个轻量级的DI和AOP容器框架。说它轻量级有一大部分原因是相对于EJB的(虽然本人从来没有接触过EJB的应用),但重要的是Spring是非侵入式的,基于Spring开发应用一般不依赖于Spring的类。

Spring中的一些概念

DI(Dependency Injection,依赖注入)

依赖注入是控制反转的具体实现。当一个角色需要另外一个角色协助的时候,在传统的程序设计中,通常由调用者来创建被调用者的实例,但是在Spring中创建被调用者将不再由调用者完成,而是交给容器去统一创建,这就是控制反转。创建被调用对象由Spring来完成,在容器实例化对象的时候主动地将被调用者(或者说它的依赖对象)注入给调用对象,这就是依赖注入。

AOP(Aspect Oriented Programming,面向切面编程)

Spring对面向切面编程提供了强有力的支持,通过它让我们将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发,应用对象只关注业务逻辑,不再负责其他系统问题,比如日志、事务或权限等。另外Spring还支持用户自定义切面。

面向切面编程是面向对象编程的一个有力补充。面向对象编程将程序分成各个层次的对象,面向切面的程序将运行过程分解成各个切面。AOP是从运行程序的角度去考虑程序的结构,提取业务处理过程的切面,OOP是静态的抽象,AOP则是动态的抽象,是对应用执行过程的步骤进行抽象,从而获得步骤之间的逻辑划分。

容器

Spring是个容器,因为它包含并且管理应用对象的生命周期和配置。比如对象的创建、销毁和回调等。

框架

Spring作为一个框架,提供了一些基础功能,比如事务管理或持久层集成等,使开发人员更专注于开发应用逻辑。

Spring的优点

1.使用Spring的IOC容器,将对象之间的依赖关系交给了Spring,降低了组件之间的耦合性,让我们更专注于应用逻辑。

2.Spring提供众多服务,比如事务管理,WS等。

3.Spring对AOP很好的支持,方便面向切面编程。

4.Spring对追u的框架提供了很好的集成支持,比如Hibernate、Struts2和JPA等。

5.Spring的DI机制降低了业务对象替换的复杂性。

6.Spring属于低侵入,代码的污染极低。

7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring的部分或全部。

"不要在悲观的情绪里沉溺太久,也不要在崩溃的边缘停留太久。"

spring的一些概念及优点的更多相关文章

  1. Spring AOP基本概念

    Spring AOP基本概念 目录 Spring AOP定义 AOP基本术语 通知类型 AOP定义 AOP基本术语 切面( Aspect ):一个能横切多个对象的模块化的关注点.对Spring AOP ...

  2. spring技术核心概念纪要

    一.背景 springframework 从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述 ...

  3. 描述一下Spring框架的作用和优点?

    Spring框架的作用和优点如下: 1.Spring是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,减少侵入: 2.Spring提供的IOC和AOP应用,可以将组建的耦合度降低至 ...

  4. Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建

    一. Spring 框架简介及官方压缩包目录介绍 主要发明者:Rod Johnson 轮子理论推崇者: 2.1 轮子理论:不用重复发明轮子. 2.2 IT 行业:直接使用写好的代码. Spring 框 ...

  5. Spring入门篇——第5章 Spring AOP基本概念

    第5章 Spring AOP基本概念 本章介绍Spring中AOP的基本概念和应用. 5-1 AOP基本概念及特点 5-2 配置切面aspect ref:引用另外一个Bean 5-3 配置切入点Poi ...

  6. Spring系列2:Spring容器基本概念和使用

    本文内容 简单回顾IoC和DI概念 Spring容器的概念 的xml配置和初始化 容器的基本使用 bean的定义和初始化配置 简单理解IoC和DI概念 什么是IoC控制反转? 通俗地但不严谨地讲,以前 ...

  7. 框架-Spring及组件概念

    1.什么是Spring Spring框架是一款开源java平台.创建于2003年,轻量级框架(基本版本只有2M). 使用Spring优点: (1)     使用POJOs开发,不再需要EJB容器:如果 ...

  8. Springboot,SSM及SSH的概念、优点、区别及缺点

    Springboot的概念: 是提供的全新框架,使用来简化Spring的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员不在需要定义样板化的配置.此框架不需要配置xml,依赖于像MAVEN这 ...

  9. spring之aop概念和配置

    面向切面的一些概念: 简单说: 连接点就一些方法,在这些方法基础上需要额外的一些业务需求处理. 切入点就是方法所代表的功能点组合起来的功能需求. 通知就是那些额外的操作. 织入就是使用代理实现整个切入 ...

随机推荐

  1. Installation request for topthink/think-captcha ^3.0 -> satisfiable by topthink/think-captcha[v3.0.0].

    ThinkPHP5.1安装图形验证码的时候报错: Problem 1 - Installation request for topthink/think-captcha ^3.0 -> sati ...

  2. 配置文件_自定义section标签获取数据

    前言:为了节约时间,先只粘贴关键代码: 1-添加section标签,name为自定义标签名称,type为:命名空间+类型,程序集名称 <section name="watchModel ...

  3. ReSharper激活方法

    激活方式选择License Keys. 激活码: MTW881U3Z5-eyJsaWNlbnNlSWQiOiJNVFc4ODFVM1o1IiwibGljZW5zZWVOYW1lIjoiTnNzIElt ...

  4. RandomAccessFile实现简易记事本工具操作

    package seday03; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Scann ...

  5. PHP+Ajax微信手机端九宫格抽奖实例

    PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现.支持可以设置中奖概率等. 奖品列表 <div class="lottery ...

  6. Excel的VBA小练习

    从我学生时代就知道EXCEL,但是对VBA了解那可真是中学认知了,但是很遗憾,那时没太研究,就像BASIC一样,那时的视野层面认为代码没有大括号什么的,看着也麻烦,其实是没有编程经验,所以看着不适应, ...

  7. mysql 容灾备份

    跨服务器备份: 服务器A:192.168.5.193 测试数据库TestDB 服务器B:192.168.5.194 目标:将服务器A上的测试数据库定时备份到服务器B中 需要技术:mysqldump + ...

  8. Android TextView文本处理库推荐

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/115 Android TextView文本处理库推荐 现在 ...

  9. git设置github的远程仓库的相关操作

        git能够把github作为远程仓库,本地可以进行推送有关变更,从而多人可以进行协作开发工作.    1  ssh-keygen -t rsa -C "your-email@163. ...

  10. 024.微服务架构之服务注册与发现(kubernetes / SpringCloud)

    微服务 微服务是一种架构模式,一种分布式的架构风格. 顾名思义,micro service,将一个庞大的单体应用拆分成若干个“微小”的服务,服务间通过进程通讯完成原本在单体应用中的调用. 其中必要的六 ...