什么是控制反转(IOC)

java中普遍如何实现控制

在java中实现某个业务时,会先在dao包下创建dao接口以及dao接口的实现类,然后在业务层service下创建接口以及业务层的实现类,然后用户就可以进行对dao包下的方法进行某个操作。像下面这样

在这里插入图片描述
而在这个包中我们可以看到,当dao包下实现类变多的时候。我们再去实现dao包下其他实现类中的方法时,就不得不去业务层的实现类里面去手动更改具体去哪一个业务层实体类了。在真正的开发中是不可能存在用户使用哪个实现类,我们程序员就去业务层修改实现那个实现类。而这种实现理念就是用户对程序进行一个控制。

Spring中如何去实现控制反转(Ioc)

在同样的包,接口以及实现类中,只要去业务层中实现一个动态设置用户使用哪个实现类的方法
在这里插入图片描述
动态设置用户使用哪个实现类的方法

    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

这个时候当用户调用其他实现类的方法时,就不用我们手动去业务层修改实现哪个具体的实现类了。

总结

从上面的两种实现业务的理念中我们可以看出,在java中实现这样的业务是我们程序员在后台这样修改去实现用户的需求,也就是程序员在控制(当然在实际开发过程中是不会这样的,这里是为了给大家方便理解举例子)。
而在Spring中我们不去修改实现类,而是用户使用哪个实现类就动态的往业务层里面设置哪个实现类。从代码的实现上没有什么区别,都是通过业务层去实现哪一个实现类来完成的。
但是不同的是!!!在这两种控制中java是程序员在控制程序,而Spring中的控制交给了用户,这就是控制反转。这里也不是说用户想怎么就怎么样,意思就是程序开发好后代码是写死的,只是用户可以在这些代码上实现自己想要的结果。

希望这篇文章可以对正在学习编程的大家有帮助,最后感谢大家能耐心看完这篇文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值