hi-nginx-java既可以通过实现hi.servlet抽象来像Flask那样快速配置路由,例如:

1  hi.route r = hi.route.get_instance();
2 r.get("^/(hello|test)/?$", this::do_hello);

也能绕过hi.servlet抽象实现无配置路由配置,即通过实现hi.route.run_t抽象直奔业务逻辑而去,例如:

 1 package hi;
2
3 import hi.request;
4 import hi.response;
5 import hi.route;
6 import java.util.regex.Matcher;
7
8 public class helloworld implements hi.route.run_t {
9 public helloworld() {
10 }
11
12 public void handler(hi.request req, hi.response res, Matcher m) {
13 res.set_content_type("text/plain;charset=utf-8");
14 res.content = "hello,world\n";
15 res.status = 200;
16 }
17 }

要调用hi.helloworld类,只需在hi-nginx中配置hi-nginx-java自带的默认控制器hi.controller即可:

location ~ \.java {
rewrite ^/(.*)\.java$ /$1 break;
hi_java_servlet hi/controller;
}

如此,访问http://localhost/hi/helloworld.java即可获得相应服务。

所以,hi-nginx-java业已实现一种URI和class之间的映射关系。如果URI是/a/b/c.java,那么相应的服务类就是a.b.c。这一切完全是自动完成的,无需任何配置。至于.java的后缀,则可任君选取,无任何限制。

另外,hi-nginx-java通过LRU+过期时间的混合算法更新URI和class之间的映射关系,默认过期时间是300秒。也就是,如果你更新了业务实现,无需做任何事,300秒后,服务器将自动更新相关业务逻辑,从而无需通过restart或者reload重启hi-nginx服务器。当然,如果着急看更新后的结果,即可通过restart或者reload重启hi-nginx服务器,也可通过配置较短的过期时间来达到目的。

最新文章

  1. 传输层协议TCP和UDP
  2. java基础之——DecimalFormat格式化数字
  3. Git系列教程二 基础介绍
  4. 介绍Oedis - Redis OH/RM
  5. office2010 office2013打开个别PPT时需要修复的解决方法
  6. GCC参数详解
  7. 进程的优先级 与 CFS 进程调度
  8. 编码问题导致样式显示在IE中不正常
  9. 使用javaconfig配置freemarker
  10. 温故而知新 Volley源码解读与思考
  11. android View层的绘制流程
  12. Java ArrayList正确循环添加删除元素方法及分析
  13. 8分钟学会Consul集群搭建及微服务概念
  14. 提交代码,SVN被锁定,提示:svn is already locked解决方案
  15. python爬虫系列之初识爬虫
  16. php中判断mysql查询返回结果集是否为空
  17. react+spring 记录跨域问题的解决方法
  18. JavaScript——双向链表实现
  19. lower_bound()函数,upper_bound()函数
  20. js中的this问题

热门文章

  1. c++ 从vector扩容看noexcept应用场景
  2. 没有磁盘空间 No space left on device
  3. linux中配置yum文件
  4. scjp卡壳题
  5. javascript多物体运动案例:多物体淡入淡出
  6. 安装 node-sass4.x 遇到的问题及解决方案
  7. tcp syn-synack-ack 服务端接收ack
  8. vscode remote wsl 的NoPermissions permission denied问题
  9. java网络编程socket的使用
  10. 目录方式扩展swap分区大小