定义
Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种在运行时动态的获取信息以及动态调用对象方法的功能称为Java 的反射机制。
应用
sping ioc反射
Spring 中的 IOC 的底层实现原理就是反射机制,Spring 的容器会帮我们创建实例,该容器中使用的方法就是反射,通过解析xml文件,获取到id属性和class属性里面的内容,利用反射原理创建配置文件里类的实例对象,存入到Spring的bean容器中。
其他场景
javaBean和jsp之间调用是通过反射
struts的 FormBean 和页面之间…也是通过反射调用….
JDBC 的 classForName()也是反射…..
hibernate的 find(Class clazz) 也是反射….
性能问题
反射还有一个不得不说的问题,就是性能问题,大量使用反射系统性能大打折扣。怎么使用使你的系统达到最优就看你系统架构和综合使用问题啦,这里就不多说了。
项目中的应用
1,底层框架jar包需要调用上层web项目里面的方法:比如底层日志监控需要拿到登录信息,可以反射web项目getloginuser
2,底层框架jar包需要调用web项目里面依赖的其他框架jar包里面的方法: