Web应用开发中通过注解把路由绑定在方法上是一种反模式吗?


Author: Kimmy

Web应用开发中通过注解把路由绑定在方法上是一种反模式吗?

知乎链接


本质上没什么区别。

除了这两种之外,还有可以参考Ruby On Rails的Convention over Configuration,都不用你自己写路由,直接根据类和方法名来做分发。


Spring逐渐延伸出来而且被推广的JavaConfig这一套注解,无非是为了在所有实现还都是Java代码的情况下不做任何框架性的侵入。所以你方法的参数还是Java对象,返回的响应还是Java对象,任何对这上面做的扩展和修改也是针对Java对象,对于具体的实现者,Spring这一层可以考虑成是透明的,只要关注正常的输入、处理、输出逻辑就好:这就应该是一个框架该干的事情。

(这里提一下,Spring的大部分注解都是运行时注解,所以只要该类不是由Spring的类加载器接管并创建对象的话,跟砍掉所有注解的普通Java类是一样的。这就是没有侵入性的原因所在。)


直接声明路由的话可以更自由和灵活的控制路由,比如可能你在执行任何方法的时候就动态绑定一堆handler上去,或者是继续bind一大堆的middleware。但也无非是增加了这么一点好处而已,所有其他的东西还都是要你自己去在handler里面再包一层:Web的逻辑就跟你要处理的东西穿插在一起了。


以上。

创建时间:2018-10-16 最近更新时间:2023-11-03