1.开发环境

  • IDEA版本: 2022.1.4
  • Maven版本:3.8.6
  • Spring版本:6.0.2

2.案例分析

2.1 自定义Man类

2.2 自定义Company类

2.3 自定义CompanyTest类

2.4 分析图

3.案例改进

  • 此时Company类和Man类之间的耦合度比较高,若希望雇佣其它类取代Man类则需要修改Company类,这种修改违背了开闭原则,为了解决该问题,就可以将雇佣什么类的工作移交出去。

3.1 自定义Staff接口

3.2 修改Man类

3.3 修改Company类

3.4 修改CompanyTest类

3.5 分析图

4.IOC概述

4.1 基本概念

  • 此时雇佣什么类的控制权已经由业务代码反转给测试代码来决定,这种思想就是IOC(Inverse of Control),翻译过来就是控制反转,使用IOC不仅可以降低程序的耦合性,还可以管理对象的创建和对象之间的依赖等。

4.2 相关接口

  • Sping框架提供IOC容器实现有两种方式:
    • BeanFactory接口主要用于Spring内部使用,在加载配置文件时不会创建对象。
    • ApplicationContext接口是BeanFactory接口的子接口,主要用于开发人员使用,在加载配置文件时就会创建对象。
  • ApplicationContext接口的主要实现类:
    • FileSystemXmlApplicationContext类主要用于读取磁盘路径的配置文件并创建容器。
    • ClassPathXmlApplicationContext类主要用于读取类路径的配置文件并创建容器。

4.3 案例实现

  • 向pom.xml文件中增加Spring支持。

  • 编写beans.xml文件。

  • 自定义CompanySpringTest类。

更多精彩和源码欢迎关注微信公众号《格子衫007》!

最新文章

  1. 推荐一个自动抽取pdf高亮笔记的web应用
  2. Jquery中的事件和动画
  3. Loadrunne实现多个场景运行
  4. POJ2488 dfs
  5. Linux 下安装 jdk步骤:
  6. ToolBar Style
  7. Innodb IO优化 — 数据库表设计 转
  8. 《c程序设计语言》读书笔记-字符型0-9转为数字0-9
  9. SAP MRP的计算步骤
  10. CAKeyframeAnimation 旋转动画
  11. ASP.NET请求处理过程
  12. 搜索广告与广告网络Demand技术-搜索广告
  13. 标准之路网站上一篇文章《十天学会web标准(div+css)》的营养精华
  14. 【一天一道LeetCode】#342. Power of Four
  15. tablib cell() missing 1 required positional argument: 'column' 报错
  16. 常见爬虫/BOT对抗技术介绍(一)
  17. Linux 环境下 网络IO模型
  18. Android自定义View学习(二)
  19. c#启动windows服务问题总结
  20. thinkphp导航高亮的方法

热门文章

  1. Portainer实用教程
  2. 容器监控:cAdvisor
  3. MySql的InnoDB的三层B+树可以存储两千万左右条数据的计算逻辑
  4. C++自学笔记 初始化列表 Initializer list
  5. 企业使用erp系统的好处及解决了什么问题?
  6. [笔记] CSP 初赛 部分知识整理
  7. C#-10 事件
  8. 学习记录-Python的局部变量和全局变量
  9. set 学习笔记
  10. Vue3 Vite3 状态管理 pinia 基本使用、持久化、在路由守卫中的使用