全局拦截器,有没有子局的说法。

原谅本人没时间作测试,只是个想法就发来问了。

背景是这样,一个项目,分前后台,而我希望前台一个全局拦截器,后台另一个全局拦截器。

首先,配置里有以下配置,

@Override
public void configRoute(Routes me) {
    me.setBaseViewPath("/WEB-INF/views");
    RouteFnConfig.conf(me);
    RouteAdminConfig.conf(me);
}

那么,我的问题就是,我能不能在RouteFnConfig里配一个全局拦截器FnInt.class,它只拦截在RouteFnConfig里定义的路由。而不会对后台RouteAdminConfig配的路由作拦截(也不用clear)。然后,我还会在RouteAdminConfig再配另一个全局拦截器。

一句话就是说,全局拦截器,能不能限定个小全局?(这句说得好矛盾!)

评论区

JFinal

2017-04-20 15:44

必然可以,而且极其容易,妙不可言,按如下步骤:
1:将路由拆分为前端的后端两部分
class FrontRoutes extends Routes {
public void config() {
// 关键在这里,下面的拦截器会拦截所有 FrontRoutes 中配置的控制器
addInterceptor(new FrontInterceptor());
add("/", IndexController.class);
}

class AdminRoutes extends Routes {
// 这里配置后端拦截器
addInterceptor(new AdminInterceptor());
add("/admin", AdminIndexController.class);
}

2:在configRoute 中再汇总:
configRoute(Routes me) {
me.add(new FrontRoutes());
me.add(new AdminRoutes());
}

不仅可以分别对拆分的 FrontsAdmin、AdminRoutes 配置不同的拦截器,还可以配置不同的 me.setBaseViewPath(...),非常有利于实际的开发需求

路由的拆分还可以在多人团队开发时,为不同的团队分配不同的 Routes,统一规范路由,各自修改自己分到手的 Routes,可以避免在 git、svn 提交时造成代码冲突

JFinal

2017-04-20 15:45

忍不住做个官方广告,加入俱乐部,获取 jfinal club 项目,该项目中有大量这种最佳实践,极其实用

ihss23

2017-04-20 16:26

@JFinal ,JFinal考虑得果然周到,给力,点赞!

JFinal

2017-04-20 16:29

@ihss23 你的提问比较有深度

ihss23

2017-04-20 16:33

@JFinal ,【握手】

绿色的小苹果

2017-04-20 16:57

必然可以,而且极其容易,妙不可言,按如下步骤:
1:将路由拆分为前端的后端两部分
class FrontRoutes extends Routes {
public void config() {
// 关键在这里,下面的拦截器会拦截所有 FrontRoutes 中配置的控制器
addInterceptor(new FrontInterceptor());
add("/", IndexController.class);
}

class AdminRoutes extends Routes {
// 这里配置后端拦截器
addInterceptor(new AdminInterceptor());
add("/admin", AdminIndexController.class);
}

2:在configRoute 中再汇总:
configRoute(Routes me) {
me.add(new FrontRoutes());
me.add(new AdminRoutes());
}

不仅可以分别对拆分的 FrontsAdmin、AdminRoutes 配置不同的拦截器,还可以配置不同的 me.setBaseViewPath(...),非常有利于实际的开发需求

路由的拆分还可以在多人团队开发时,为不同的团队分配不同的 Routes,统一规范路由,各自修改自己分到手的 Routes,可以避免在 git、svn 提交时造成代码冲突

ihss23

2017-04-20 17:09

@绿色的小苹果 ,你这样Ctr C+V,真的好吗?

绿色的小苹果

2017-04-21 11:12

@ihss23 那得看Ctr谁