jfinal路由配置能否智能扫包?
@JFinal 你好,想跟你请教个问题:配置文件里面的configRoute
public void configRoute(Routes me) {// TODO Auto-generated method stub
me.add("/hello",HelloController.class);
}
如果每次都加新的Controller类,都得手工一个一个的加太不方便了,有没有像spring注入一样。在Controller类上添加一个注解让框架给自动添加Route。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
写一个xml文件,加载后放到Route(重写此类中的config方法)中。
@JFinal 这个路由这样搞好球烦啊。
直接用annotation这样也挺好的啊。
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 返回的视图的相对路径
@八皮 做的 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必须声明才有效,提升了安全性。也便于统一管理路由),目前的状态是权衡后的结果
@八皮 做的 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必须声明才有效,提升了安全性。也便于统一管理路由),目前的状态是权衡后的结果