Spring(一):Spring概述及相关概念
Spring简介
Spring主要作用是用来解耦,降低代码之间的耦合度。根据功能的不同,可以将系统的代码分为主业务逻辑与系统服务逻辑。
主业务逻辑之间代码联系紧密,相互调用较多,复用性相对较低;
系统服务逻辑相对来说功能独立,主要是为主业务逻辑提供系统级的服务,如日志、安全、事务等,复用性相对较高。
Spring根据代码的功能特点,将降低耦合度分为了两种方式:控制反转IoC与面向切面AOP。
- IoC控制反转是的主业务在相互调用的过程中,不需要使用者手动维护之间的关系,即不需要手动创建对象,而是交由Spring容器进行统一管理,自动注入。
- AOP面向切面编程,将系统服务逻辑进行抽取公用,使系统服务得到了最大复用,而且不需要使用者手工将系统服务混杂到主业务逻辑中,交由Spring容器进行统一执行。
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应用)模块等,并且做到了独立,可插拔式开发。
Spring特点
非侵入式
Spring框架的API不会出现在业务逻辑中,即业务逻辑就是POJO。业务逻辑中没有Spring相关的API,可以快速移植到其他框架
容器
Spring容器来管理对象的生命周期、对象间的依赖关系。
IoC
控制反转(Inversion of Control),创建对象的实例不是由调用者完成,而是交由Spring容器完成,并注入调用者。
应用IoC后,一个对象依赖的其他对象会被动的传入,而不是这个对象自己创建或者查找依赖对象。即不是对象从容器中查找依赖,而是容器在对象初始化时主动将依赖传入。
AOP
AOP面向切面编程,是一种编程思想,是对面向对象OOP的补充。允许通过分离主业务逻辑与系统级服务进行开发,可以把日志、安全、事务管理等服务剥离出来,提取为公用代码,这样既降低了代码耦合,也提高了代码的复用率。AOP就是将这些系统服务抽取形成一个切面,然后将切面动态的植入到业务逻辑中。
最新文章
- Linux文件和目录权限详细讲解
- 在Ubuntu下进行MongoDB安装步骤
- 关于StartCoroutine的简单线程使用
- SwipeRefreshLayout
- 最新仿梦芭莎免费ecshop模板
- copy
- 开启g++ 编辑器 c++11特性
- 健身计划_from85to75
- 交换机access和trunk的一些小结(转)
- ios 6 横竖屏转换
- Spring Boot 系列教程5-热部署-devtools模块
- React-Native 之 redux 与 react-redux
- 使用 Java8 Optional 的正确姿势(转)
- Codeforces 865C Gotta Go Fast 二分 + 期望dp (看题解)
- unity 2d游戏 按y坐标排序子对象
- c++基础:之封装
- C++ 第一课:预处理命令
- C语言的整型溢出问题
- 简单拼接图像的tile_images和tile_images_offset算子
- Python之路(六)--->; 函数、变量
热门文章
- oslab oranges 一个操作系统的实现 实验四 认识保护模式(三):中断异常
- codevs1068乌龟棋-四维DP,五维如何缩减一维
- 深入剖析JavaScript中的数据类型判断(typeof instanceof prototype.constructor)
- React Slingshot
- GitHub GraphQL API v4 &; GitHub REST API v3
- 为什么NGK推出的DEFI项目这么火热?
- NGK以强大的创新能力赋予NGK公链超级实用的特性
- JUC并发编程学习笔记
- Spring Security 实战干货:OAuth2登录获取Token的核心逻辑
- R语言学习4:函数,流程控制,数据框重塑