一、什么是Java反射?
Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态语言的一个关键性质。
二、反射的作用
我们知道反射机制允许程序在运行时取得任何一个已知名称的class的内部信息,包括包括其modifiers(修饰符),fields(属性),methods(方法)等,并可于运行时改变fields内容或调用methods。那么我们便可以更灵活的编写代码,代码可以在运行时装配,无需在组件之间进行源代码链接,降低代码的耦合度;还有动态代理的实现等等;但是需要注意的是反射使用不当会造成很高的资源消耗!
- 注:实例点击此处
三、IoC(控制反转)和DI(依赖注入)
-
总而言之,我们可以通过下面两幅图来理解
image image -
IoC容器作用:管理所有的java对象(也称bean)及其相互间的依赖关系
-
“依赖注入”是对“控制反转”的不同说法,本质是一回事
-
控制反转分为依赖注入和依赖查找,但依赖注入广泛
-
IoC两种设计模式:
- 反射:在运行状态中,根据提供的类的路径或类名,通过反射来动态获取该类的所有属性和方法
- 工厂模式: 注入方式: 构造器:constructor-arg 和Setter:property
网友评论