在Java中使用反射非常昂贵,因为它影响性能非常糟糕。但我不知道,反射广泛用于容器配置(web.xml),框架的工作原理类似于Structs,REST ..和像休眠等ORM 它是如何被证明是正确的?它是因为反射只使用一次当容器启动或其他原因背后呢?反射与容器配置
Q
反射与容器配置
-2
A
回答
0
- 没有其他的方式让他们做他们做的事(一个很好的例子可能是Spring框架 - 它不会强制你在使用依赖注入时使用任何接口,并且因为它没有接口用,不知道你的类在编译的时候,唯一的办法就是通过反射来检查它们)
- 反射重部件不(应该)被过于频繁地
- 反射执行不说如果执行得当,代价非常昂贵(例如,如果您只查找一次想要调用的方法,然后缓存找到的对象
java.lang.reflect.Method
并在进一步的调用中使用它s)
0
首先,我不会说使用反射对代码的性能有这样的不利影响。当然,这是一个开销,但是有一些优化技术可以确保将性能影响降到最低。就性能和可用性之间的权衡而言,应考虑产品作为开发者的具体要求。例如,我会在移动设备上使用一个沉重的基于反射的框架 - 我想不是。它在后端是否有意义 - 我会说是。
其次,基于注释的配置并不总是意味着在应用程序运行时使用反射。有一些框架利用AnnotationProcessor
框架并在编译期间生成Java代码,稍后将其用作“普通代码”。另外,很多框架在运行时使用注释配置和字节代码生成,所以基本上反射保持在最低限度。
相关问题
- 1. 配置反射扫描测试类
- 2. 获取容器类型使用反射
- 3. Webpack配置与反应
- 4. IoC容器配置
- 5. 自动映射器配置
- 6. 反射与枚举
- 7. 使用Deplector与.NET反射器7
- 8. 单反的.NET反射器
- 9. Unity容器配置问题
- 10. Kubernetes配置链接容器
- 11. 欺骗反射器
- 12. 拦截器用于与Java配置不存在请求映射
- 13. 测试与酶反应容器
- 14. 何处放置IoC容器配置?
- 15. 控制容器与“一个通用”容器的多次反转
- 16. 配置django服务器在httpd与反向代理
- 17. NoClassDefFoundError的与Java反射
- 18. Java反射与子类
- 19. IList与反射的EntityCollection
- 20. Groovy反射与封闭
- 21. 反向URL映射与AppEngine
- 22. 配置角度注射器错误()
- 23. lambda表达式反射与正常反射
- 24. 如何设置ListView中的按钮上的onClickListener(适配器使用反射...)?
- 25. 反射器反汇编WPF4 beta2 DLL
- 26. Apache Commons配置与PropertyPlaceHolderConfigurer的兼容性
- 27. 的WinForms反射器应用
- 28. Automapper VS通过配置文件和反射
- 29. C#反射列表:对象与目标类型不匹配
- 30. C#/ Unity反射:TargetException:对象与目标类型不匹配
这是有道理的,因为在这些框架中没有其他替代方案。 – JonK
我想这也会回答你的一些音乐会:http://programmers.stackexchange.com/a/123959 –
*“因为它影响性能非常糟糕”* - 不正确。曾经有一段时间Java中的反射非常缓慢,但现在不然。 –