打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SAP BOPF和Spring框架里加了注解的控制器是如何被调用的

BOPF的这些determination,其方法不需要application developer自己去调用,而是被BOPF框架通过调用interface method的方式被调用。
Spring MVC的@RequestMapping工作原理类似,但实现方式稍稍高级点,用的是Java的反射。

ProductPageController这个类的productDetail方法加上了@RequestMapping, 参数是:

当我点了product list上某个product的image想进入detail page时:

这个包含了p的url就会被Spring MVCdelegate到我通过@RequestMapping注册的controller class上。从debugger里能看出我的controller class已经被成功地determine出来了。所以从本质上讲,@RequestMapping和在ABAP里常用的把CLAS名字配到表里的方法其目的都一样:注册,只是Annotation更加优雅和简便一点而已。

扫描原理见我博客:
A simulation of Java Spring dependency injection annotation @Inject in ABAP.
How does component-scan work in Spring Framework
How does @Autowired work in Spring framework
要执行的方法名字在这:

最后这个方法通过反射在line 497行被调用。

Java和ABAP反射机制的区别

注意在Java里,每个类的每个方法的元数据都可以被sun.reflect.MethodAccessor的一个实例来描述,而ABAP里反射的granularity只到Class level,只有CL_ABAP_CLASSDESCR,没有CL_ABAP_CLASS_METHODDESCR!

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java远程热部署插件
Spring boot(二)
Spring 注解学习手札(二) 控制层梳理
Spring Boot 整合 Thymeleaf 完整 Web 案例
Spring中Controller和RequestMapping的详解
Spring4新特性
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服