package com.sandu.common.config;

 import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.core.JFinal;
import com.jfinal.ext.interceptor.SessionInViewInterceptor;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory;
import com.jfinal.plugin.c3p0.C3p0Plugin;
import com.jfinal.render.JspRender;
import com.jfinal.render.ViewType;
import com.sandu.admin.interceptor.AdminInterceptor;
import com.sandu.admin.interceptor.GlobalActionInterceptor;
import com.sandu.admin.model._MappingKit;
import com.sandu.common.handler.CommonHandler; public class MainConfig extends JFinalConfig { /**
* 配置jfinal常量值
*/
@Override
public void configConstant(Constants me) {
//设置默认视图jsp
me.setViewType(ViewType.JSP);
//读取配置文件
PropKit.use("config.properties");
//设置当前是否为开发模式
me.setDevMode(PropKit.getBoolean("devMode"));
//设置文件上传路径
String fileUploadPath = "upload/image";
me.setBaseUploadPath(fileUploadPath);
//JspRender对HttpServletRequest对象中的数据进行了处理,数据全被放入了Map之中,设置数据不被处理
JspRender.setSupportActiveRecord(true);
} /**
* 配置接口的映射
*/
@Override
public void configRoute(Routes me) {
me.add(new AdminRoutes());
me.add(new WeixinRoutes());
} /**
* 配置数据库映射
*/
@Override
public void configPlugin(Plugins me) {
//配置数据库连接池插件
C3p0Plugin c3p0Plugin=new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password"));
//orm映射 配置ActiveRecord插件
ActiveRecordPlugin arp=new ActiveRecordPlugin(c3p0Plugin);
arp.setContainerFactory(new CaseInsensitiveContainerFactory());//忽略数据库字段大小写
arp.setShowSql(true);
//数据库表与model映射
_MappingKit.mapping(arp);
//添加到插件列表中
me.add(c3p0Plugin);
me.add(arp);
} @Override
public void configInterceptor(Interceptors me) {
//添加拦截器
me.add(new GlobalActionInterceptor());
me.addGlobalServiceInterceptor(new AdminInterceptor());
//处理session传递数据找不到属性
me.add(new SessionInViewInterceptor());
} @Override
public void configHandler(Handlers me) { } public static void main(String[] args) {
JFinal.start("WebRoot", 80, "/", 5);
} }

JFinalConfig配置的更多相关文章

  1. JFinal 国际化

    要支持国际化,需要在容器初始化的时候配置一个处理国际化的全局拦截器.比如可以使用 com.jfinal.i18n.I18nInterceptor 配置拦截器: public class MppConf ...

  2. JFinal 的初始化

    浅析初始化过程 首先要从 web 容器进行初始化 <?xml version="1.0" encoding="UTF-8"?> <web-ap ...

  3. jfinal集成cas单点认证实践

    本示例jfinal集成cas单点认证,采用获取到登录用户session信息后,在本地站点备份一份session信息,主要做以下几个步骤: 1.站点引入响应jar包: 2.在web.xml中配置对应过滤 ...

  4. jfinal的配置文件详解

    1.去官网下载最新的jar包(我这是JFinal-lib-2.2) tomcat+mysql 所需要的jar 2.配置web.xml <filter> <filter-name> ...

  5. 【原】无脑操作:Eclipse + Maven + jFinal + MariaDB 环境搭建

    一.开发环境 1.windows 7 企业版 2.Eclipse IDE for Enterprise Java Developers  Version: 2019-03 (4.11.0) 3.JDK ...

  6. JFinal 3.3 学习 -- JFinalConfig (配置web项目)

    开篇  概述 基于JFinal的web项目需要创建一个继承自JFinalConfig类的子类,该类用于对整个web项目进行配置. JFinalConfig子类需要实现六个抽象方法,如下所示: publ ...

  7. jfinal拦截器配置

    实现aop @Before(Tx.class) public void index(){ // renderText("hello world!"); render("/ ...

  8. Jfianl框架定时器使用配置

    Jfianl 自2.3版本后就整合了定时器到框架中,赞一个: 下面我来总结下自己使用cron4j到达定时效果的经验,不足之处还请见谅: Cron4jPlugin是作为JFinal的Plugin而存在的 ...

  9. JFinal常量配置学习笔记

    在继承 JFinalConfig 类时,需要 实现 /** * Config constant */ public abstract void configConstant(Constants me) ...

随机推荐

  1. windows 7下React Native环境配置

    React Native 是 Facebook 推出的一个用 Java 语言就能同时编写 ios,android,以及后台的一项技术,它可以做到实时热更新 .FaceBook 也号称这们技术是 “Le ...

  2. 《Web开发中块级元素与行内元素的区分》

    一.块级元素的特性: 占据一整行,总是重起一行并且后面的元素也必须另起一行显示. HTML中块级元素列举如下: address(联系方式信息) article(文章内容) aside(伴随内容) au ...

  3. 做linux运维工程师,必须要掌握以下几个工具

    linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究 ...

  4. 转载---javascript 定时器总结

    转载:http://www.jb51.net/article/40193.htm JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延 ...

  5. npm更新到最新版本的方法

    打开命令行工具 npm -v 查看是否是最新版本 如果不是 运行npm i npm g 升级 打开C:\Users\用户名用户目录找到node_modules 文件夹下的npm文件夹,复制一份 打开n ...

  6. Android Weekly Notes Issue #226

    Android Weekly Issue #226 October 9th, 2016 Android Weekly Issue #226 本期内容包括: 用Firebase做A/B Test; 用R ...

  7. iOS:小技巧(不断更新)

    记录下一些不常用技巧,以防忘记,复制用. 1.获取当前的View在Window的frame: UIWindow * window=[[[UIApplication sharedApplication] ...

  8. ReactiveCocoa 冷热订阅(cold subscribe, hot subscribe)

    ReactiveCocoa支持两种订阅方式,一种是冷订阅,一种是热订阅. 热订阅的特点: 1.不管有没有消息订阅着,发送者总会把消息发出去. 2.不管订阅者是什么时候订阅的,发送者总是会把相同的消息发 ...

  9. 个人作业-week2:关于微软必应词典的案例分析

    第一部分 调研,评测 评测基于微软必应词典Android5.2.2客户端,手机型号为MI NOTE LTE,Android版本为6.0.1. 软件bug:关于这方面,其实有一些疑问.因为相对于市面上其 ...

  10. [Erlang 0119] Erlang OTP 源码阅读指引

      上周Erlang讨论群里面提到lists的++实现,争论大多基于猜测,其实打开代码看一下就都明了.贴出代码截图后有同学问这代码是哪里找的?   "代码去哪里找?",关于Erla ...