天天看点

02Spring - 控制反转IOC

控制反转-Inversion Of Control

类之间产生依赖关系,可以称之为 “耦合”。

1)使用配置文件配置

如通过反射的方式来注册驱动:

02Spring - 控制反转IOC

上面有个问题,就是我们发射类对象的全限定类名字字符串是在java类中写死的,一旦要改还是要修改源代码。解决这个问题很简单,就是使用 使用配置文件配置。

2)工厂模式解耦

在实际开发中,可以把所有的dao、service和action对象使用配置文件配置起来,当启动服务器应用加载的时候,通过读取配置文件,把这些对象创建出来并存起来。接下来使用的时候,直接取就可以了。

上面解耦的思路有2个问题:

1, 存那里去?->引出容器这个概念

分析: 有查找需求,放到Map集合(不放到List集合)

结论 : 在应用加载时,创建一个Map,用于存放action,service和dao对象,把这个map称之为 容器。

2)何为工厂?->引出控制反转这个概念

一般我们new对象都是主动的,现在我们把对象交给工厂帮我们创建,这是被动的,通过被动接收的方式获取对象的思想就是控制反转,它的作用只有一个,就是削减计算机程序的耦合。

继续阅读