java 路由_Java反射实现URL路由

Java反射实现URL路由

URL路由

所谓URL路由,指的是把URL映射到某一个函数。URL不是应该对应到某一个文件吗,例如HTML/JSP或者Velocity模板。 但是为了实现代码逻辑和视图的分离,我们把URL对应到一个java方法调用上,这个可能就是传说中的MVC模式。

传统方式

你可能想起用裸用Servlet或者Struts框架,然后经常要在xml文件里面配置。 用Servlet或者Struts,有很多不方便的地方。每个处理需要独占一个类。每增加或者修改接口,都需要配置xml。xml一旦配置错误,又很难debug。 顺便吐槽一下,Struts框架不但没有减少代码量,甚至有可能增加代码量,不知道它存在的价值什么是。Spring也是过度工程化得典型。

反射方案

其实根本的需求是把URL对应的某一个方法调用。我规定URL是由类名和方法名称组成的,例如http://www.xxx.com/Users/say, 将反射调用Users类的say方法。 这样全局只需要配置一个Servlet来做路由分发,从此和xml说再见。

有人会说,URL变了呢?那我只能Eclipse的Refactor重命名类。如果URL比较变态不是这种怎么办?幸好在我的项目里面URL都是我来定的。而且解决80%的问题以后,剩下的特殊情况也可以再配置或者继承路由分发类来特殊处理。

Web开发框架

在09年的时候我就尝试使用反射来代替xml来做URL路由,这么做的很嗨。 后来还开发了一个JSV Web开发框架也用这种方式,可惜Java里面开发框架比较多,没有人注意到,大家也习惯了啰嗦的xml方式。 6年过去了,当我试图搜索时还是没发现也有人这么干。

JSV还对Restful风格的路由支持。http://www.xxx.com/Users/123被看做是http://www.xxx.com/Users/get/123的简写,最后一个被当做参数,相当于调用new Users().get(123)

当然JSV库的功能很多,还包括服务器热加载、网页模板渲染、数据库ORM、JSON序列化、验证码生成等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值