jfinal路由配置能否智能扫包?

bing_chuan 发布于 2013/04/05 14:12
阅读 2K+
收藏 1

@JFinal 你好,想跟你请教个问题:配置文件里面的configRoute

public void configRoute(Routes me) {
  // TODO Auto-generated method stub
  me.add("/hello",HelloController.class);
 }

 

如果每次都加新的Controller类,都得手工一个一个的加太不方便了,有没有像spring注入一样。在Controller类上添加一个注解让框架给自动添加Route。

加载中
1
JFinal
JFinal

    @八皮 做的 jfinal extensions 项目提供了这个功能,使用起来非常简单:me.add(new AutoBindRoutes())。如果要使用需要付出点代价,如果自动扫描没有打开就需要约定控制器类名以Controller结尾,否则就需要用 @ControllerBind 注解来配置。

    一般来说一个系统的 Controller 并不会太多,如果很多还可以利用将路由定义在不同的Routes文件下,如: class FrontRoutes extends Routes{......}, class AdminRoutes extends Routes{......},然后在 YourJFinalConfig 中: me.add(new FrontRoutes()); me.add(new AdminRoutes()); 非常适合大型项目。

    JFinal 未提供自动化路由有很多考虑,例如性能问题,配置风格问题,安全问题(当前的方式是Controller必须声明才有效,提升了安全性。也便于统一管理路由),目前的状态是权衡后的结果

    

1
dreamers
dreamers
@jfinal-ext
0
b
bing_chuan

引用来自“JFinal”的答案

    @八皮 做的 jfinal extensions 项目提供了这个功能,使用起来非常简单:me.add(new AutoBindRoutes())。如果要使用需要负出点代价,如果自动扫描没有打开就需要约定控制器类名以Controller结尾,否则就需要用 @ControllerBind 注解来配置。

    一般来说一个系统的 Controller 并不会太多,如果很多还可以利用将路由定义在不同的Routes文件下,如: class FrontRoutes extends Routes{......}, class AdminRoutes extends Routes{......},然后在 YourJFinalConfig 中: me.add(new FrontRoutes()); me.add(new AdminRoutes()); 非常适合大型项目。

    JFinal 未提供自动化路由有很多考虑,例如性能问题,配置风格问题,安全问题(当前的方式是Controller必须声明才有效,提升了安全性。也便于统一管理路由),目前的状态是权衡后的结果

    

谢谢
0
绝望的八皮
绝望的八皮
Routes扩展
自动注册Route AutoBindRoutes
简介


扫描clsspath和lib中继承了Route的类按照约定的规则自动注册,也可以在 每一个Route上用注解配置


示例代码


    public void configRoute(Routes me) {
        me.add(new AutoBindRoutes());
    }
如果我们有一个AController,以上代码则相当于


   public void configRoute(Routes me) {
        me.add("/a",AController.class);
    }
默认的注册规则是截取类名Controller前的部分并首字母小写.


ControllerBind配置


如果需要单独配置Route,需要在Controller上加上ControllerBind注解


ControllerBind 注解,属性说明如下:


controllerKey 访问某个 Controller 所需要的一个字符串
viewPath Controller 返回的视图的相对路径

0
红白机
红白机

@JFinal 这个路由这样搞好球烦啊。

直接用annotation这样也挺好的啊。

0
小家雀
小家雀

写一个xml文件,加载后放到Route(重写此类中的config方法)中。

返回顶部
顶部