美文网首页
关于反射、注解、依赖注入、控制反转的一些总结。

关于反射、注解、依赖注入、控制反转的一些总结。

作者: 阿星_ | 来源:发表于2018-07-18 15:56 被阅读0次

1 无论是android的Butterknife、retrofit还是javaweb的spring框架,AOP(面向切面编程)。

这些优秀的框架,大多是用了注解、动态代理来实现。(ButterKnife没有用到反射。)

那么先说注解,说到注解要先说反射。

反射的原理如图

反射也就是通过Class.fromName(类全名)拿到类的class对象,有了这个对象就可以拿到类的所有信息了。

比如成员,构造方法,方法。。这些。

那么注解呢。

注解可以理解为标签,它和class以及interface一样,属于一种类型。

是java1.5后引入的。

而注解需要正常工作,则需要引入元注解。

元注解可以理解为注解到注解上的注解。或是一种特殊的标签。

常用的有retention和target

注解是只有属性,没有方法的。

而属性的表达方式又是无参数的方法。

有属性,就一定要给他赋值,有默认值就不用赋。

也可以用value=xx的方法来赋值。

如果没有属性,那么注解的括号要去掉。

其实java本身提供了几个现成的注解。

那么它的保留期应该是RetenPolicy.Class保留到编译进行时。

那么注解的使用,比如Butterknife。

就是把这个标签贴到类的成员view上面,然后写上注解的值是view的id。

那么怎么把这个id拿出来呢。

靠的就是反射了。

那么控制反转和依赖注入的关系是什么呢。

我的理解是依赖注入就是对象自动生成bean,不用自己new了。

而控制反转就是把自己new对象的方式交给第三方,比如spring容器。

那么控制就反转了。

那么控制反转的好处是什么呢。

对spring来说。

如果不用控制反转,那么所有的类相互依赖使用,是耦合在一起的。

类的创建和销毁,又是非常消耗资源的。

那么如果把所有要创建对象的类在spring中登记。

由spring来统一管理,控制对象的生命周期。这样耦合性就非常低并且便于管理了。

比如spring默认的注入方式是单例的。

这样类的相互使用,就不用多次创建对象消耗对象,或者每个类都写个单例麻烦。

根本目的是解耦,提高项目的可维护性。

以上。

相关文章

  • 关于反射、注解、依赖注入、控制反转的一些总结。

    1 无论是android的Butterknife、retrofit还是javaweb的spring框架,AOP(面...

  • spring记错本

    1.IOC:控制反转(DI:依赖注入)对控制反转和依赖注入的理解:image.png 其中原理是利用反射机制调用s...

  • day02 IoC/DI学习

    DI(依赖注入)是Martin Fowler 在2004年提出的关于IoC(控制反转)的解释,依赖注入和控制反转其...

  • day03 IoC学习

    依赖注入是Martin Fowler 在2004年提出的关于IoC(控制反转)的解释,依赖注入和控制反转其实就是一...

  • Date-04-IoC学习

    依赖注入是Martin Fowler 在2004年提出的关于IoC(控制反转)的解释,依赖注入和控制反转其实就是一...

  • 每日java--Day02:依赖注入和控制反转

    昨天学的反射,今天学习依赖注入。控制反转 IOC:利用了反射机制依赖注入 DI:是 IOC 的一种形式,使类与类之...

  • 6.Spring IoC练习

    1. 依赖注入和控制反转 依赖注入和控制反转IoC是什么Ioc—InversionofControl,即“控制反转...

  • 浅谈spring boot控制反转的相关问题

    控制反转,和依赖注入是同一个意思,我觉得应该重点去了解什么是依赖,而后控制反转、依赖注入就有体会了;关于依赖,可以...

  • Spring AOP IOC 实现原理,面试问到如何回答

    IOC:控制反转,通过依赖注入方式实现,IOC利用java反射机制,AOP利用代理模式。所谓控制反转是指,本来被调...

  • JAVA IOC 与 DI

    依赖倒置、控制反转和依赖注入的区分 依赖倒置、控制反转和依赖注入的区分依赖倒置(Dependency Invers...

网友评论

      本文标题:关于反射、注解、依赖注入、控制反转的一些总结。

      本文链接:https://www.haomeiwen.com/subject/ndmopftx.html