05.Route的路由分包技法

05.Route的路由分包技法

JFinal 路由还可以进行拆分配置,这对大规模团队开发特别有用,以下是代码示例:

public class FrontRoutes extends Routes {
public void config() {
setBaseViewPath("/view/front");
add("/", IndexController.class);
add("/blog", BlogController.class);
}
}

public class AdminRoutes extends Routes {
public void config() {
setBaseViewPath("/view/admin");
addInterceptor(new AdminInterceptor());
add("/admin", AdminController.class);
add("/admin/user", UserController.class);
}
}

public class MyJFinalConfig extends JFinalConfig {
public void configRoute(Routes me) {
me.add(new FrontRoutes()); // 前端路由
me.add(new AdminRoutes()); // 后端路由
}
}

如上三段代码,FrontRoutes 类中配置了系统前端路由,AdminRoutes 配置了系统后端路由,MyJFinalConfig.configRoute(…)方法将拆分后的这两个路由合并起来。使用这种拆分配置不仅可以让 MyJFinalConfig 文件更简洁,而且有利于大规模团队开发,避免多人同时修改MyJFinalConfig 时的版本冲突。

FrontRoutes 与 AdminRoutes 中 分 别 使 用 setBaseViewPath(…) 设 置 了 各 自Controller.render(view)时使用的 baseViewPath。

AdminRoutes 还通过 addInterceptor(new AdminInterceptor())添加了 Routes 级别的拦截器,该拦截器将拦截 AdminRoutes 中添加的所有 Controller,相当于业务层的 inject 拦截器,会在 class 拦截器之前被调用。这种用法可以避免在后台管理这样的模块中的所有 class 上使用@Before(AdminInterceptor.class),减少代码冗余。


你可能感兴趣的:(Jfinal3.0从入门到精通)