反射

一、什么是Java反射?

Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态语言的一个关键性质。

二、反射的作用

我们知道反射机制允许程序在运行时取得任何一个已知名称的class的内部信息,包括包括其modifiers(修饰符),fields(属性),methods(方法)等,并可于运行时改变fields内容或调用methods。那么我们便可以更灵活的编写代码,代码可以在运行时装配,无需在组件之间进行源代码链接,降低代码的耦合度;还有动态代理的实现等等;但是需要注意的是反射使用不当会造成很高的资源消耗!

  • 注:实例点击此处

三、IoC(控制反转)和DI(依赖注入)

浅谈对Spring Ioc以及DI的理解

  • 总而言之,我们可以通过下面两幅图来理解

    image
    image
  • IoC容器作用:管理所有的java对象(也称bean)及其相互间的依赖关系

  • “依赖注入”是对“控制反转”的不同说法,本质是一回事

  • 控制反转分为依赖注入和依赖查找,但依赖注入广泛

  • IoC两种设计模式:

    • 反射:在运行状态中,根据提供的类的路径或类名,通过反射来动态获取该类的所有属性和方法
    • 工厂模式: 注入方式: 构造器:constructor-arg 和Setter:property

你可能感兴趣的:(反射)