Package com.ebspos.config

Source Code of com.ebspos.config.JFWebConfig

package com.ebspos.config;



import javax.servlet.http.HttpServletRequest;

import net.loyin.jFinal.plugin.AutoTableBindPlugin;
import net.loyin.jFinal.plugin.MyRoutesUtil;
import net.loyin.jFinal.plugin.TableNameStyle;
import net.loyin.jFinal.plugin.sqlXml.SqlInXmlPlugin;
import net.loyin.memcache.MemcacheTool;
import net.loyin.util.PropertiesContent;

import com.alibaba.druid.filter.stat.StatFilter;
//import com.ebspos.handler.ApiHandler; 有异常暂时注释 by zyh20130727
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.plugin.activerecord.CaseInsensitiveContainerFactory;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.plugin.druid.DruidStatViewHandler;
import com.jfinal.plugin.druid.IDruidStatViewAuth;
/**
* API引导式配置
*/
public class JFWebConfig extends JFinalConfig {
  static{
  }
  /**
   * 配置常量
   */
  public void configConstant(Constants me) {
//    loadPropertyFile("a_little_config.txt");        // 加载少量必要配置,随后可用getProperty(...)获取值
    me.setDevMode(true);
//    me.setViewType(ViewType.JSP);               // 设置视图类型为Jsp,否则默认为FreeMarker
    me.setError404View("/404.html");
    me.setError500View("/500.html");
    me.setBaseViewPath("/WEB-INF/pages/");
  }
 
  /**
   * 配置路由
   */
  public void configRoute(Routes me) {
    MyRoutesUtil.add(me);
    MemcacheTool.mcc.flushAll();//刷新所有的memcache
  }
 
  /**
   * 配置插件
   */
  public void configPlugin(Plugins me) {
    // 配置数据库连接池插件
    DruidPlugin druidPlugin = new DruidPlugin(PropertiesContent.get("jdbc.url"),
                          PropertiesContent.get("jdbc.username"),
                          PropertiesContent.get("jdbc.password")
                          ,PropertiesContent.get("jdbc.driver"));
//    WallFilter wall = new WallFilter();
//    wall.setDbType(PropertiesContent.get("jdbc.dbType"));
//    druidPlugin.addFilter(wall);
    druidPlugin.addFilter(new StatFilter());
    me.add(druidPlugin);
    // 配置ActiveRecord插件
    /**
    ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
    me.add(arp);
    //数据库表与bean映射
    arp.addMapping("acategory", Acategory.class);  // 映射acategory 表到 Acategory模型
    */
   
    //添加自动绑定model与表插件
    AutoTableBindPlugin autoTableBindPlugin = new AutoTableBindPlugin(druidPlugin, TableNameStyle.LOWER);
    autoTableBindPlugin.setShowSql(true);
    autoTableBindPlugin.setContainerFactory(new CaseInsensitiveContainerFactory());
    me.add(autoTableBindPlugin);
    me.add(new SqlInXmlPlugin());
   
//    me.add(new SpringPlugin());//添加spring插件自动从WEB-INF下寻找application.xml
  }
 
  /**
   * 配置全局拦截器
   */
  public void configInterceptor(Interceptors me) {
//    me.add(new SessionInViewInterceptor());//解决session在freemarker中不能取得的问题 获取方法:${session["manager"].username}
  }
 
  /**
   * 配置处理器
   */
  public void configHandler(Handlers me) {
//    me.add(new SessionHandler());//将session里的参数传递到request中直接得到
    //访问路径是/admin/monitor
    DruidStatViewHandler dvh =  new DruidStatViewHandler("/admin/monitor", new IDruidStatViewAuth() {
      public boolean isPermitted(HttpServletRequest request) {//获得查看权限
//        HttpSession hs = request.getSession(false);
//        return (hs != null && hs.getAttribute("$admin$") != null);
        return true;
      }
    });
    me.add(dvh);
  //  me.add(new ApiHandler("/api/")); //有报错,暂时注销by zyh20130727
  }
  /**
   * 建议使用 JFinal 手册推荐的方式启动项目
   * 运行此 main 方法可以启动项目,此main方法可以放置在任意的Class类定义中,不一定要放于此
   */
  /*public static void main(String[] args) {
  }*/
}
 
TOP

Related Classes of com.ebspos.config.JFWebConfig

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.