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. bash / powershell切换到脚本所在目录

    切换工作目录到脚本所在目录 bash: #!/usr/bin/env sh cd $(dirname $0) #cd $(dirname $(readlink $0)) #soft link powe ...

  2. 在生成.net core 3.0程序时不包含nuget库

    在.net core 3.0中,默认的生成行为有了两个变化,一个是默认生成可执行文件,另一个是会复制依赖的Nuget项. 前一个变化会默认生成可执行的exe,用起来更加方便了.另一个变化可能是为了减少 ...

  3. .net ajax跨域请求问题

    </system.codedom>     <system.webServer>         <defaultDocument>             < ...

  4. go-gtk环境配置

    go-gtk环境配置(用于go的图形化界面) 弄了一天,终于把这个环境给搭建好了,差不多就是安装msys2->安装gtk的各个版本->安装mingw(我原来装有但不影响,因为重复了,环境变 ...

  5. DDL、DML、TCL

    一.DDL 1.创建表(CREATE) (1)数据库对大小写不敏感,只对字符串大小写敏感. (2)使用create关键字创建表.(-- 表示注释). 格式: CREATE TABLE 表名( 字段名1 ...

  6. ORACLE ORA-1652的解决方法

    原创 Oracle 作者:wzq609 时间:2015-02-04 22:11:07 17183 0 前言:在检查数据库的alert日志,发现数据库报了ORA-1652: unable to exte ...

  7. 基于socketsever下实现的FTP

    # ### 客户端client import socket import json import struct import os sk = socket.socket() sk.connect( ( ...

  8. tornado基础

    一.初识tornado 1.什么是tornado 全称Tornado Web Server,是一种Web服务器软件的开源版本. 2.特点 作为Web框架,它是一个轻量级的Web框架,类似于另一个Pyt ...

  9. Linux—管理用户、用户组及权限

    管理用户 添加用户 [root@localhost ~]# useradd myuser [root@localhost ~]# useradd -m myuser # -d 目录:指定用户主目录,如 ...

  10. git笔录

    [一]git介绍 初始的项目版本管理可以在本地赋值备份之前版本代码,项目较小时还可以,但项目较大时,这种方法显得有点捉襟见肘 ... ... 后期也出现了很多版本管理工具,例如svn.vcs.vss等 ...