spring的ioc控制反转

控制反转(ioc)和依赖注入
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。

控制反转:在类a中使用类b的对象时,不再进行new操作,而是通过第三方(spring)将类b的对象传入给类a
依赖注入:是实现控制反转的手段
注入的类需要存在继承或者实现的关系,一般使用接口来实现,很多面试官成为面向接口编程

一下的原理,用接口来解开类与类之间的耦合,不过仍与接口有关系

public class SystemService{
	private SystemDao;
}
public interface SystemDao{
	......
}
public class SystemDaoImpl implements SystemDAO{
	......
}

三种依赖注入方式:
1。访问器注入(重点)
被注入的类需要有继承或者实现关系
被注入类中需要使用父类或者接口来声明对象,同时为这个对象至少设置set方法
还是上面的这个例子:

public class SystemService{
	private SystemDao;
	set 和get方法;
}
public interface SystemDao{
	......
}
public class SystemDaoImpl implements SystemDAO{
	......
}

在spring中通过配置完成注入
相关代码如下:

aaaaa

dao1和 dao2分别是dao中的实现类,通过配置文件进行依赖注入的控制,减少了service与dao之间的耦合,当需要更换实现类时,无需更改service 和dao的代码,只需改动ref的配置即可

2 。构造器注入

3 。 接口注入(spring不支持,了解)

spring还提供了注解方式的注入-@autowired 自动注入

猜你喜欢

转载自blog.csdn.net/ykallan/article/details/84780806