Spring框架之Spring IOC原理详细解析(精)

首先认识一下Spring框架,简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

Spring简化了开发。那么Spring是如何简化开发的呢?

传统方式开发中:

在web层需要创建业务层的一个类:UserService user=new UserService();

这样做的是没有面向接口编程的,现在改为了面向接口编程:UserService user=new UserServiceImpl();

可是使得web层与业务层之间有耦合。一个好的程序设计应该满足OCP原则(open-close原则:对程序扩展是open,对修改程序的代码是close,不修改代码,只增加代码),如果我现在要修改这个实现类,我就需要修改代码,这样不利于开发,所以要想只修改代码我们需要用到工厂模式。

什么是工厂模式呢?http://www.runoob.com/design-pattern/factory-pattern.html

因为工厂模式中如要增加一个产品,只需要扩展一个工厂类就行了,所以代码可以进阶成:

public Factory{

 public static UserService getUserName(){return new UserServiceImpl();}

 .............

}

现在这样,接口和实现类之间的耦合没有了,但是却转移到了工厂类和接口之间的耦合去了。比如现在要调用,即

UserService user=Factory.getUserName();

但是如果现在返回的接口不是UserServiceImpl,需要改成别的,那也是需要去修改代码的,这样还是不行。于是Spring IOC应运而出。

Spring IOC用到了工厂+反射+配置文件:

<bean id="user" class="com.java.UserServiceImpl"/>

class Factory{

     public static Object getBean(String id){

         反射

     }

}

现在只需要通过id来找到这个接口就行了。以上就是Spring IOC的底层原理

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值