我正在编写一个非常简单的 Web 框架,使用 Java servlet 进行学习。我以前在 PHP 中做过这个,它通过查询请求 URI,然后实例化适当的类和方法来工作。
这在 PHP 中运行良好,因为可以执行类似$c = new $x; $x->$y;
. 但是,我不确定如何将其转换为 Java,或者即使这是一种合适的方法。
到目前为止,我已经尝试过:
Router router = new Router(request.getPathInfo());
String className = router.route(); //returns com.example.controller.Foo
Class c = Class.forName(className);
Object x = c.newInstance();
Foo y = (Foo) x;
y.doSomething();
这对于一些路由来说似乎很好,但它似乎不能很好地扩展,也不允许从配置文件中获取路由。
我应该如何使它工作?