Jfinal项目配置

来源:互联网 发布:量子通讯知乎 编辑:程序博客网 时间:2024/05/03 00:53

                                       

Jfinal的web项目,首先需要创建一个继承JfinalConfig类的子类:


public class BpmsConfig extends JFinalConfig


 然后,需要实现其中的五个抽象方法:

1.configConstant 此方法用来配置 JFinal 常量值

   @Overridepublic void configConstant(Constants me) {PropKit.use("config.properties");//加载配置文件                me.setDevMode(PropKit.getBoolean("devMode"));//开发者模式,为true时开启me.setViewType(ViewType.JSP);//以jsp为视图文件,JFinal 支持 JSP、FreeMarker、Velocity 三种常用视图。 me.setEncoding("UTF-8");//文件上传最大多少,这里设置300Mme.setMaxPostSize(300 * 1024 * 1024);}

在开发模式下,JFinal 会对每次请求输出报告,如输出本次请求的 Controller、Method 以及请求所携带的参数。如:

JFinal action report -------- 2017-03-04 12:30:02 ------------------------------Controller  : org.bpms.controller.admin.UserController.(UserController.java:1)Method      : indexInterceptor : org.bpms.interceptor.GlobalInterceptor.(GlobalInterceptor.java:1)Parameter   : _=1457065802122  tabid=e594ce962faa404babe4c8ce2ccaf177 

2.configHandler 此方法用来配置JFinal的处理器

@Overridepublic void configHandler(Handlers me) {me.add(new BpmsHandler());}

3.configInterceptor 此方法用来配置 JFinal 的全局拦截器,全局拦截器将拦截所有 action 请求,除非使用@Clear 在 Controller 中清除

  @Overridepublic void configInterceptor(Interceptors me) {me.add(new GlobalInterceptor());}

4.configPlugin 此方法用来配置 JFinal的插件

@Override    public void configPlugin(Plugins me) {        Prop p = PropKit.use("config.properties");//非第一次使用该配置文件        //加载数据库配置        c3p0Plugin = new C3p0Plugin(p.get("jdbc_url"),                 p.get("jdbc_username"), p.get("jdbc_password"));        me.add(c3p0Plugin);        //自动扫描model,绑定table        AutoTableBindPlugin arp = new AutoTableBindPlugin(c3p0Plugin , SimpleNameStyles.LOWER);        me.add(arp);                //配置snaker插件        SnakerPlugin snakerPlugin = new SnakerPlugin(c3p0Plugin , p.getProperties());        me.add(snakerPlugin);                // Quartz调度插件---配合snaker工作流,使用数据库来持久化        QuartzPlugin quartzPlugin = new QuartzPlugin();        me.add(quartzPlugin);                //简单任务调度--内存持有,无持久化        SchedulerPlugin sp = new SchedulerPlugin("job.properties");        //添加插件        me.add(sp);              //使用redis缓存方案时使用weixin作为主缓存,打开连接        if (p.getBoolean("redis_mode")){            RedisPlugin redisPlugin = new RedisPlugin("weixin", p.get("redis_host"), p.get("redis_pass"));            me.add(redisPlugin);                    }    }


 最后一个configRoute,此方法用来配置 JFinal 访问路由,可以有两种方式:

public void configRoute(Routes me) { me.add("/admin", AdminController.class); } 

这样就将"/admin"映射到AdminController这个控制器了,如果访问/admin则会访问到AdminController的index()方法

还有一种写法:

@Overridepublic void configRoute(Routes me) {me.add(new AdminRoutes());}

在这个方法里加载这个类,然后在这个类里配置映射:


public class AdminRoutes extends Routes {@Overridepublic void config() {add("/admin", AdminController.class);add("/menu", MenuController.class);add("/role", RoleController.class);add("/user", UserController.class);add("/dept", DeptController.class);add("/log", LogController.class);add("/upload", FileUploadController.class);add("/article",ArticleController.class);//微信add("/weixin", WeixinController.class);//testadd("/news", NewsController.class);}}

0 0
原创粉丝点击