Spring简介

Spring的主要作用是为代码 “解耦”,降低代码的耦合度。
根据功能不同:可以将一个系统中的代码分为:主业务逻辑系统级业务逻辑两类

你是如何理解Spring的?

Spring是为了解决企业级复杂度(耦合度)的开发问题。

怎么解决耦合度问题呢?

在系统开发中分为:主业务逻辑系统级业务逻辑(交叉级业务逻辑),两类

  • 主业务逻辑:如电商业务、物流业务等
  • 系统级业务逻辑:如JDBC 连接数据库等
    JDBC 连接数据库操作流程:
    1、加载驱动
    2、创建连接
    3、开启事务
    4、CRUD操作 (具体业务)
    5、提交事务
    6、事务回滚(出问题时)
    7、释放连接

总结结语: 不管是电商业务、物流业务都要操作数据库(共同点)这种业务逻辑就是系统级业务逻辑,而根据我们面向对象三大特性:封装、继承、多态。我们需要提取他的共同的属性或者行为,然而连接数据库,操作JDBC都是电商业务、物流业务共同的行为,所以我们在开发中都要操作这个共同点。
然而我们在开发的过程中,我们的思维惯性,我们可能在想业务,写得很好,也很爽,可是技术卡住了(比如数据库怎么提交不了啊),等你解决的技术,再回来写业务,你就会一脸懵,耦合度造成的问题就体现了,所以这部分的(系统级业务)业务应该被提取出来,怎么提取出来呢?Spring的出现就是为了解决这个问题,解耦。将企业级的主业务与交叉级业务分离开来处理。

Spring怎么做到解耦的呢?

Spring将降低耦合度分为两类:IoC(控制反转) 和AOP(面向切面)

IoC: 使得业务在调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了,而是由Spring统一管理,自动注入。
比如有一个接口 new他实现的时候 UserService userService = new UserServiceImpl();我要操作他的实现的时候,是不是得自己把它new出来,也就是我们在主动实例化。然而IoC控制反转创建这个new UserServiceImpl();实例的过程不再由我主动去创建,而是交给S容器去创建,控制权是不是在Spring手上,这就是控制反转,比如还有一个列子,计算机上面不是有插槽嘛,你是不是可以插内存,插硬盘,插CPU各种扩展。

AOP: 使得系统级服务得到了最大的复用,而不用再由程序员手工将系统级服务"混杂"到主业务逻辑中,而是由Spring容器统一完成"织入"。

简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架

谈谈Spring开发框架相关推荐

  1. java spring注解维护,从一次工程启动失败谈谈 spring 注解

    原标题:从一次工程启动失败谈谈 spring 注解 檀宝权 Java 后端开发工程师,负责度假 App 后端和广告后端开发维护工作,熟悉 Tomcat,Spring,Mybatis,会点 Python ...

  2. Spring开发框架-李兴华-专题视频课程

    Spring开发框架-5341人已学习 课程介绍         Spring是现在为流行的技术开发框架,也是所有企业开发之中必定要使用的开发框架,使用Spring可以有效的避免代码耦合性问题,也可以 ...

  3. 谈谈spring中的拦截器interceptor

    谈谈spring中的拦截器 在web开发中,拦截器是经常用到的功能.它可以帮我们验证是否登陆.预先设置数据以及统计方法的执行效率等等.今天就来详细的谈一下spring中的拦截器.spring中拦截器主 ...

  4. 谈谈 Spring 中的 NoSuchBeanDefinitionException

    概述 org.springframework.beans.factory.NoSuchBeanDefinitionException 是很常见的异常,可以说绝大多数使用过 Spring 的人都曾遇到过 ...

  5. 谈谈Spring中的IOC和AOP概念 - 倪升武的博客 - CSDN博客

    转载于https://blog.csdn.net/eson_15/article/details/51090040 IOC和AOP是Spring中的两个核心的概念,下面谈谈对这两个概念的理解. 1. ...

  6. 从@EnableRedisHttpSession谈谈Spring Session实现原理

    一.EnableRedisHttpSession使用 添加依赖 <!-- spring session的依赖 --> <dependency><groupId>or ...

  7. 谈谈Spring中都用到了那些设计模式

    控制反转(IoC)和依赖注入(DI) IoC(Inversion of Control,控制翻转) 是Spring 中一个非常非常重要的概念,它不是什么技术,而是一种解耦的设计思想.它的主要目的是借助 ...

  8. 来自读者的面试题:谈谈Spring用到了哪些设计模式?

    前言 前几天,一位读者面阿里被问到一个问题:Spring框架用到了哪些设计模式?,答的不是很好,于是打算写篇文章讲讲这个! 代理模式 所谓代理,是指它与被代理对象实现了相同的接口,客户端必须通过代理才 ...

  9. 来谈谈Spring构造函数注入的循环依赖问题

    作者:服务端开发 blog.csdn.net/u010013573/article/details/90573901 一.循环依赖 spring的循环依赖主要是指两个类相互之间通过@Autowired ...

最新文章

  1. apt cyg 安装php,Cygwin的包管理器:apt
  2. Python 测试开发从入门到高手成长之路
  3. Java并发编程(3):线程挂起、恢复与终止的正确方法(含代码)
  4. hdu 1881(简单01背包)
  5. 海思108M 4D1模式含义
  6. dj鲜生-18-发送邮件功能
  7. MyBatis Generator(MBG)从Abator迁移
  8. chrome浏览器导出书签 如何导入收藏夹
  9. 12c rac 实例无法启动之磁盘组空间耗尽
  10. 开源文本编辑器Vim的作者Bram Moolenaar推出了新的编程语言Zimbu.doc
  11. php 输入需要删除文本里的字符串_重新学习php基础之-安全E-mail(十九)
  12. 《高度安全环境下的高级渗透测试》—第1章1.5节安装OpenOffice
  13. html 表格转换为dbf,DBF Excel 文件相互转换-完美教程资讯
  14. 【shiro基础】springboot + shiro整合thymeleaf
  15. 推荐1个易上手代码开源的好用的H5网页编辑工具
  16. 【Milvus的以图搜图】
  17. 一文读懂iOS如何使用TestFlight进行测试
  18. Matplotlib绘图9种经典风格,你喜欢哪种?
  19. 如何在element-plus配套vue3中使用日期时间选择器默认英文修改为中文
  20. 如何抠图人像换背景?教你一个在线操作的方法

热门文章

  1. pe和linux一起安装到移动硬盘,解决方法:将分区的移动硬盘放入可启动的WIN PE磁盘中,并安装GHO或ISO原始版本...
  2. 信息学奥赛一本通 1229:电池的寿命 | OpenJudge NOI 4.6 2469:电池的寿命
  3. 信息学奥赛一本通 2038:【例5.5】最大数位置
  4. 信息学奥赛一本通(1251:仙岛求药)
  5. 信息学奥赛一本通(2026:【例4.12】阶乘和)
  6. 骨牌铺方格(HDU-2046)
  7. pytorch5:pytorch常用激活函数图像绘制
  8. linux shc shell脚本_使用shc工具加密shell脚本详解
  9. 如何识别哭泣csdn_如何让敏感的孩子,不再那么敏感?不是溺爱,而是懂得这些方法...
  10. RabbitMQ集群并处理失败