点滴记录,是前进的脚步 2017-08-22 13:09 采纳率: 20%
浏览 2196
已结题

依赖注入原理中依赖的对象究竟是用什么方式创建的?

网上有人说spring的依赖注入中依赖的对象是用反射创建的,有人说使用工厂模式创建的,具体是怎么创建的有人知道吗?请说的仔细一点谢谢了,有创建对象部分的源码更好。

  • 写回答

3条回答 默认 最新

  • 喜剧之王hzj 2017-08-23 03:27
    关注

    如果把工厂模式比作面包制作店,这家店有很多面包口味,比如山楂味的,蛋糕味的等,当你想吃蛋糕味的面包时,你需要先去找到这家店,然后再到里面去选择面包的口味。对应的就是如果你需要找到某个方法,那么你需要先去找到一个类(new),然后再去这个类里面找到某个(class.method())。
    反射的原理你可以参考一下这个反射加载类型,并创建对象实例Class clazz = Class.forName("ClassName"); Object obj = clazz.newInstance();
    ClassName是你要加载的类的名称。看到这个生成方法的原理,就能看出来,其实反射就是根据类的全路径名去实现类加载
    依赖注入中有一个装bean的容器,同理bean的容器可以看成一个面包店,里面有很多bean则可以看成不同口味的面包,这就是工厂模式。我们通常通过bean实现注入的时候,我们一般写的是类的名称,而不是直接去在配置文件中new一个类,其实在spring底层中,它通过bean配置的路径,已经帮我们通过类加载机制自动生成了,这就是反射。所以这就是为什么在spring的bean中我们只需要配置类的全路径名就可以了

    评论

报告相同问题?

悬赏问题

  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥50 Oracle Kubernetes服务器集群主节点无法访问,工作节点可以访问
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架
  • ¥15 有关sql server business intellige安装,包括SSDT、SSMS。
  • ¥15 stm32的can接口不能收发数据
  • ¥15 目标检测算法移植到arm开发板
  • ¥15 利用JD51设计温度报警系统