Spring学习:IoC思想
IoC(Inversion of Control) 控制反转
在之前MVC开发架构的学习中,业务层实现需要调用数据层接口实现类,如果想改变实现方式,需要更改业务层代码,这就导致代码耦合度偏高。
为了解决这个问题,就有了IoC设计思想。
IoC思想,也就是在使用对象时,在程序中不主动使用new产生对象,改为外部提供对象。对象的创建控制权由程序转移到外部,这就是控制反转思想。
Spring实现了IoC思想,提供了一个容器,称为IoC容器,充当IoC思想的“外部”,被管理的对象称作Bean。
DI(Dependency Injection)依赖注入
IoC思想的合理实现方法就是DI。
在Spring的IoC容器中如果两个对象间有依赖关系,则容器会帮助建立关系,称为依赖注入。
例如Service对象依赖Dao对象,那么我们只需要在Spring xml文件中配置好关系,使用对象时不仅会帮助获取到Bean,还会自动绑定所有关系。
IoC案例
导包
1 | <!--导入Spring的坐标--> |
在resources中创建Spring Config XML文件并配置bean
1 | <!--id为bean的名字,class表示bean的定义类--> |
初始化IoC容器,通过容器获取Bean
1 | // 获取IoC容器 |
DI案例
为了解耦,Service中不应再有new出来的Dao对象,我们需要一个描述Service与Dao之间关系的方法,即set方法。
1 | public class BookServiceImpl implements BookService { |
再在XML文件中配置Bean,需要注意的是,ref属性指的是参照哪一个Bean,name属性表示配置进当前Bean对象中的属性。
1 | <!--id为bean的名字,class表示bean的定义类--> |
之后在App中即可直接调用Service完成功能实现。
1 | public class App { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Colazi's nest!
评论
GitalkValine









