spring解耦原理

  1. 普通java代码实现功能

    
    class Zhang{void doSome(){Xing xi=new Xing();Xi.doSome();XXX x = new XXX();x.xx();}
    }
    class Xing{void doSome(){XXX x = new XXX();x.XX();XXX x = new XXX();x.xx();}
    }
    

    普通java实现功能时,每个类中都要new一些对象,也就是所谓的依赖关系,类与类之间直接互相调用,互相依赖,关系错综复杂,如下图。

  2. Spring实现Bean管理

    class Person{@ResourcePrivate XXX xx;@ResourcePrivate YYY yy;@ResourcePrivate ZZZ zz;void doSome(){xx.xx();yy.yy();}}class Chinese{@ResourcePrivate Person ps;void doSome(){ps.doSome();}}
    

    对象在使用的时候不是去new,而是通过IOC容器获取,对象与对象之间不再有直接联系,他们通过中间人IOC容器联系。

  3. 总结

    Spring IOC 容器 通过反射拿到对象的实例,使类的功能更加单一化,减少了类与类的依赖关系,So,降低了耦合

转载于:https://www.cnblogs.com/zhanglixuan/p/6725854.html

spring解耦原理相关推荐

  1. spring解耦_云端时代的解耦:使用Spring Cloud Azure构建云端原生微服务

    spring解耦 重要要点 云本机应用程序应充分利用云的优势,而不仅仅是迁移到云中 通过在云计算环境上运行,微服务与云原生环境并驾齐驱 集中配置,服务发现,异步消息驱动和分布式跟踪是微服务基础架构 S ...

  2. Spring核心技术原理-(1)-通过Web开发演进过程了解一下为什么要有Spring?

    一.知史可以明鉴 我们学习技术的时代赶上了最好的时代,跳过了很多前人经常踩的坑,前人在踩坑的过程中总结了很多经验和教训,而新时代的我们只是继承了前人的经验和教训,而忽略了这些采坑的过程,以至于我们面对 ...

  3. Spring Ioc原理解析

    Spring Ioc原理解析 IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图1:软件系统中耦 ...

  4. Spring事务原理分析-部分一

    Spring事务原理分析-部分一 什么事务 事务:逻辑上的一组操作,组成这组操作的各个单元,要么全都成功,要么全都失败. 事务基本特性 ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要 ...

  5. spring ioc原理分析

    spring ioc原理分析 spring ioc 的概念 简单工厂方法 spirng ioc实现原理 spring ioc的概念 ioc: 控制反转 将对象的创建由spring管理.比如,我们以前用 ...

  6. Spring MVC 原理探秘 - 一个请求的旅行过程

    1.简介 在前面的文章中,我较为详细的分析了 Spring IOC 和 AOP 部分的源码,并写成了文章.为了让我的 Spring 源码分析系列文章更为丰富一些,所以从本篇文章开始,我将来向大家介绍一 ...

  7. spring aop原理_Spring知识点总结!已整理成142页离线文档(源码笔记+思维导图)...

    写在前面 由于Spring家族的东西很多,一次性写完也不太现实.所以这一次先更新Spring[最核心]的知识点:AOP和IOC 无论是入门还是面试,理解AOP和IOC都是非常重要的.在面试的时候,我没 ...

  8. (转)spring源码解析,spring工作原理

    转自:https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/ Spring 的骨骼架构 Spring 总共有十几个组件,但是 ...

  9. 不同类的方法 事务问题_深入理解 Spring 事务原理

    Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获 ...

最新文章

  1. pip和conda到底有什么不一样?
  2. java并发编程系列-内存模型基础
  3. Asp将查询结果导出到excel里
  4. 存clob为空的值_oracle clob 存储空间
  5. mac用vscode打开html,Mac 命令行打开VsCode
  6. c语言作业答案N个公约数公倍数,c语言程序题,输入两个正整数m和n,求其最大公约数和最小公倍数。...
  7. 【单片机基础篇】舵机模块使用
  8. 1000多页的pdf算法题整理完成,字节算法面试手册来了
  9. php.ini中设置session过期时间
  10. linux读取stm32唯一识别码,STM32HAL内部识别码,全球唯一识别码,UID读取
  11. NYOJ题目1045看美女
  12. 电容中那些独有的特性和功能,你有了解吗?
  13. UVA1391/LA3713 Astronauts
  14. 爬取微博视频页并批量下载python+requests+ffmpeg(连接视频和音频)
  15. 【计几】二维计算几何基础
  16. 燕十八PHP公益课堂学习笔记
  17. 什么是iu组装服务器,IU李知恩和“买家秀”在“教科书”级别的私有服务器共享是邻居...
  18. InputReader读取rawEvent解析
  19. STL:: allocator之deallocate destory的区别与联系
  20. 阿里国际站运营的核心指标是什么?

热门文章

  1. auto make System.map to C header file
  2. LAMP编译安装,并搭建discuz
  3. C#DataGridView添加序号
  4. 诺基亚Lumia 800生产背后的故事——萨罗工厂[多图]
  5. 如何解决局域网内传输速度过慢问题
  6. 工具 - 硕思SWF Decompiler5.3Build528 含补丁
  7. WPF中Expander与ListBox(ItemsControl)嵌套中的问题
  8. 数值分析之数值稳定性篇
  9. Linux软件包管理基本操作入门
  10. shell脚本复制文件夹内容到另外的文件夹,如果存在则自动备份