1. Spring简介

    Spring主要作用是用来解耦,降低代码之间的耦合度。根据功能的不同,可以将系统的代码分为主业务逻辑与系统服务逻辑。

    • 主业务逻辑之间代码联系紧密,相互调用较多,复用性相对较低;

    • 系统服务逻辑相对来说功能独立,主要是为主业务逻辑提供系统级的服务,如日志、安全、事务等,复用性相对较高。

    Spring根据代码的功能特点,将降低耦合度分为了两种方式:控制反转IoC与面向切面AOP。

    • IoC控制反转是的主业务在相互调用的过程中,不需要使用者手动维护之间的关系,即不需要手动创建对象,而是交由Spring容器进行统一管理,自动注入。
    • AOP面向切面编程,将系统服务逻辑进行抽取公用,使系统服务得到了最大复用,而且不需要使用者手工将系统服务混杂到主业务逻辑中,交由Spring容器进行统一执行。
  2. Spring核心结构

    Spring经过多年发展,现已成为事实上的行业标准,并且衍生出了众多子项目,如Spring Data、Spring Web mvc、Spring Boot等

​ 我们将的Spring指的是Spring Framework框架,目前Web模块与Data模块均已发展为子项目Spring MVC与Spring Data。Spring Framework是一个分层清晰并且依赖关系、指责定位非常明确的轻量级框架,主要包括Core container(核型容器)模块、AOP/Aspects模块以及Data(数据库访问)模块和Web(web应用)模块等,并且做到了独立,可插拔式开发。

  1. Spring特点

    • 非侵入式

      Spring框架的API不会出现在业务逻辑中,即业务逻辑就是POJO。业务逻辑中没有Spring相关的API,可以快速移植到其他框架

    • 容器

      Spring容器来管理对象的生命周期、对象间的依赖关系。

    • IoC

      控制反转(Inversion of Control),创建对象的实例不是由调用者完成,而是交由Spring容器完成,并注入调用者。

      ​ 应用IoC后,一个对象依赖的其他对象会被动的传入,而不是这个对象自己创建或者查找依赖对象。即不是对象从容器中查找依赖,而是容器在对象初始化时主动将依赖传入。

    • AOP

      AOP面向切面编程,是一种编程思想,是对面向对象OOP的补充。允许通过分离主业务逻辑与系统级服务进行开发,可以把日志、安全、事务管理等服务剥离出来,提取为公用代码,这样既降低了代码耦合,也提高了代码的复用率。AOP就是将这些系统服务抽取形成一个切面,然后将切面动态的植入到业务逻辑中。

Spring(一):Spring概述及相关概念的更多相关文章

  1. 214. Spring Security:概述

    前言 在之前介绍过了Shiro之后,有好多粉丝问SpringSecurity在Spring Boot中怎么集成.这个系列我们就和大家分享下有关这方面的知识. 本节大纲 一.什么是SpringSecur ...

  2. spring框架的概述与入门

    1. Spring框架的概述 * Spring是一个开源框架 * Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J ...

  3. Spring 框架的概述以及Spring中基于XML的IOC配置

    Spring 框架的概述以及Spring中基于XML的IOC配置 一.简介 Spring的两大核心:IOC(DI)与AOP,IOC是反转控制,DI依赖注入 特点:轻量级.依赖注入.面向切面编程.容器. ...

  4. Spring 的 AOP 概述和底层实现

    Spring 的 AOP 概述和底层实现 1. 什么是 AOP AOP (Aspect Oriented Programing),即面向切面编程 AOP 采取横向抽取机制,取代了传统纵向继承体系重复性 ...

  5. 15 Spring Data JPA概述

    Spring Data JPA 概述 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和 ...

  6. 【Spring】Spring的事务管理 - 1、Spring事务管理概述(数据库事务、Spring事务管理的核心接口)

    Spring事务管理概述 文章目录 Spring事务管理概述 数据库事务 什么是Spring的事务管理? Spring对事务管理的支持 Spring事务管理的核心接口 Platform Transac ...

  7. Spring总结_02_Spring概述

    一.概念准备 1.应用程序:是能完成我们所需要功能的成品,比如购物网站.OA系统. 2.框架:是能完成一定功能的半成品,比如我们可以使用框架进行购物网站开发:框架做一部分功能,我们自己做一部分功能,这 ...

  8. Spring 入门(概述)

    1.什么是框架 2.Spring简介 3.IOC(配置.注解) 4.Bean(配置.注解) 5.AOP(配置.注解.AspectJ.API) 资源: http://spring.io/ http:// ...

  9. [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.

    前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...

随机推荐

  1. C# 类 (7) - 抽象 Abstract

    Abstract 抽象类,关键字Abstract ,最典型的应用就是在 继承机制里 作为base类,抽象类是不能被实例化的(前面说的static 类也不能被实例化)它必须作为 基类,被别人继承,然后必 ...

  2. Python对excel的基本操作

    Python对excel的基本操作 目录 1. 前言 2. 实验环境 3. 基本操作 3.1 安装openpyxl第三方库 3.2 新建工作簿 3.2.1 新创建工作簿 3.2.2 缺省工作表 3.2 ...

  3. 让你像黑客一样写代码(not really)

    让你像黑客一样写代码(not really) http://poznan.tvp.pl 这是一个波兰的视频网站. poznan 波兹南(波兰城市 视屏链接 http://video.sina.com. ...

  4. js with All In One

    js with All In One 不推荐,要废弃 function f(x, o) { with (o) { console.log(x); } } function f(foo, values) ...

  5. BattleBots

    BattleBots 搏茨大战 https://battlebots.com/ BiteForce https://www.youtube.com/watch?v=06lyUXuQT_Y xgqfrm ...

  6. linux bash which

    linux bash which https://linuxize.com/post/linux-which-command/ Linux which command is used to ident ...

  7. py 时间处理

    字符串解析 如果你使用的不是isoformat string那么解析字符串就会失败,需要用strptime转换一下 import datetime datetime.datetime.strptime ...

  8. vue的filter用法,检索内容

    var app5 = new Vue({ el: '#app5', data: { shoppingList: [ "Milk", "Donuts", &quo ...

  9. 我眼中的价值币——NGK(下)

    跨链交互方案并不是区块链世界中的一个新课题.自比特币诞生揭开智能合约的序幕之后,跨链交互的需求便产生了.但是,经过十年的发展,市场中的跨链解决方案进展缓慢,究之原因有以下几个方面. 首先,区块链的去中 ...

  10. NGK.IO会是一个投资优质项目吗?

    互联网发展至今,技术已经高度成熟,人们发现了互联网的好处后,互联网逐渐渗入到家家户户.随着时代的变迁,人们对HTTP长期作为主流霸占互联网食物链的顶端感到不满足.当人类开始变得挑剔,HTTP的劣势就逐 ...