在什么样的场景下,需要利用到Java的反射特性编程?

Java反射机制常用于框架开发,如Spring,它允许在运行时动态加载类和调用方法。通过反射,我们可以透视类和对象的内部信息,实现注解驱动和XML配置,简化业务代码。反射在配置文件决定执行类和方法、动态创建未知类型对象、IDE自动补全以及通用框架开发中都有重要应用。
摘要由CSDN通过智能技术生成

Java的反射特征一般结合注解和配置文件(如:XML)来使用,这也是大部分的框架(Spring等)支持两种配置方式的原因。

如果是注解方式:当服务端启动时,Spring框架会去扫描指定目录下的类,通过反射看类有没有Service注解,如果类上有Service注解,会提前初始化(new)这个类。初始化好所有的类以后,再去查找所有的属性,看属性有没有Autowired注解,有的话,会给这个属性注入值(反射赋值)

如果是XML方式:原理也差不多,只不过是先解析XML,拿到XML中的配置信息,再去初始化(new)或给属性反射赋值,所以我们些业务代码的时候才不用一个个的去new实现类,所有的参数都赋上值,这部分的工作Spring已经利用反射技术给完成了的。

1:反射提供了一种”俯瞰”和”透视”类和对象内部信息的能力,让你在处理一些全局性的、常规方法不好搞定的需求的时候,有了降维打击的能力。

2:当你需要在配置文件中决定业务代码需要执行哪个具体类和方法的时候,你用反射。如果没有反射,就没有Strut,如果没有反射,就没有白盒子单元测试。

3:在你编译是不能直接调用,运行时可以调用的情况下,用反射

4:反射和注解,是在框架层编写通用业务代码的好手段,可以有效减少业务代码。

5:通过反射,我们可以在运行时获得程序或程序集中每个类型的成员和成员的信息。程序中一般的对象的类型都是在编译期就确定下来的,而Java反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。所以我们可以通过反射机制直接创建

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值