BOPF的这些determination,其方法不需要application developer自己去调用,而是被BOPF框架通过调用interface method的方式被调用。 ProductPageController这个类的productDetail方法加上了@RequestMapping, 参数是: 当我点了product list上某个product的image想进入detail page时: 这个包含了p的url就会被Spring MVCdelegate到我通过@RequestMapping注册的controller class上。从debugger里能看出我的controller class已经被成功地determine出来了。所以从本质上讲,@RequestMapping和在ABAP里常用的把CLAS名字配到表里的方法其目的都一样:注册,只是Annotation更加优雅和简便一点而已。 扫描原理见我博客: 最后这个方法通过反射在line 497行被调用。 Java和ABAP反射机制的区别注意在Java里,每个类的每个方法的元数据都可以被sun.reflect.MethodAccessor的一个实例来描述,而ABAP里反射的granularity只到Class level,只有CL_ABAP_CLASSDESCR,没有CL_ABAP_CLASS_METHODDESCR! 要获取更多Jerry的原创文章,请关注公众号"汪子熙": |
|