SAP BOPF和Spring框架里的控制器是怎么被调用的

本篇内容主要讲解“SAP BOPF和Spring框架里的控制器是怎么被调用的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SAP BOPF和Spring框架里的控制器是怎么被调用的”吧!

BOPF的这些determination,其方法不需要application developer自己去调用,而是被BOPF框架通过调用interface method的方式被调用。

Spring MVC的@RequestMapping工作原理类似,但实现方式稍稍高级点,用的是Java的反射。

SAP BOPF和Spring框架里的控制器是怎么被调用的  bopf 第1张

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

SAP BOPF和Spring框架里的控制器是怎么被调用的  bopf 第2张

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

SAP BOPF和Spring框架里的控制器是怎么被调用的  bopf 第3张

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

SAP BOPF和Spring框架里的控制器是怎么被调用的  bopf 第4张

扫描原理见我博客:

  • 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

要执行的方法名字在这:

SAP BOPF和Spring框架里的控制器是怎么被调用的  bopf 第5张

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

SAP BOPF和Spring框架里的控制器是怎么被调用的  bopf 第6张

Java和ABAP反射机制的区别

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

SAP BOPF和Spring框架里的控制器是怎么被调用的  bopf 第7张

到此,相信大家对“SAP BOPF和Spring框架里的控制器是怎么被调用的”有了更深的了解,不妨来实际操作一番吧!这里是蜗牛博客网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram