1.Web项目启动时候,会加载JFinal的过滤器,并执行其init方法
Jfinal中的JFinalConfig执行顺序:
configConstant(常用配置--开发模式,Json工厂) -> configRoute(配置路由) -> configEngine(添加视图模板)-> configPlugin(配置插件:数据库连接池等) -> configInterceptor(配置全局拦截器) -> configHandler
2.jfinal.init()方法初始化用户在configClass中配置的相关信息,其中我们的plugins其实是一个List, Routes其实是map.
3.startPlugins方法拿出用户配置的插件信息,通过DbKit便拥有了我们自己的配置的dataSource
4.getInterceptorArray配置拦截器
5.controller(action),及其要执行的方法,拦截器作为map的value以及配置的actionKey(路由)作为map的key加入到Actionmapping中的mapping中(这就是为什么可根据URL执行响应了)
6.执行过滤器的doFilter方法,该方法也会在每一次请求的过程中都会拦截我们请求的URI,找到对应的action并从action中拿出具体的controller。
Action Controller中的public方法 可以使用注解设置为非 @NotAction
注意:Interceptor拦截器 的顺序是有影响的 可以使用@clear进行排除某个拦截器