首页>代码>JFinal-layui极速开发企业应用系统>/Jfinal-layui/src/main/java/com/qinhailin/common/config/MainConfig.java
package com.qinhailin.common.config; import com.alibaba.druid.filter.stat.StatFilter; import com.alibaba.druid.wall.WallFilter; 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.kit.Prop; import com.jfinal.kit.PropKit; import com.jfinal.template.Engine; import com.jfinal.template.source.ClassPathSourceFactory; import com.qinhailin.common.directive.MyNowDirective; import com.qinhailin.common.handler.CommonHandler; import com.qinhailin.common.intercepor.ExceptionInterceptor; import com.qinhailin.common.intercepor.LoggerInterceptor; import com.qinhailin.common.intercepor.SessionInterceptor; import com.qinhailin.common.kit.DruidKit; import com.qinhailin.common.model._MappingKit; import com.qinhailin.common.routes.AutoBindRoutes; import com.jfinal.ext.interceptor.SessionInViewInterceptor; import com.jfinal.plugin.druid.DruidPlugin; import com.jfinal.plugin.ehcache.EhCachePlugin; import com.jfinal.server.undertow.UndertowServer; import com.jfinal.json.FastJsonFactory; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.SqlReporter; import com.jfinal.plugin.activerecord.dialect.MysqlDialect; public class MainConfig extends JFinalConfig { /** *运行main方法启动项目 */ public static void main(String[] args) { UndertowServer.start(MainConfig.class); } // 使用 jfinal-undertow 时此处仅保留声明,不能有加载代码 private static Prop p; // 先加载开发环境配置,再追加生产环境的少量配置覆盖掉开发环境配置 static void loadConfig() { if (p == null) { p = PropKit.use("config-dev.txt").appendIfExists("config-pro.txt"); } } /** * 配置JFinal常量 */ @Override public void configConstant(Constants me) { // 读取数据库配置文件 loadConfig(); // 设置当前是否为开发模式 me.setDevMode(p.getBoolean("devMode")); // 设置默认上传文件保存路径 getFile等使用 me.setBaseUploadPath(p.get("baseUploadPath")); // 设置默认下载文件路径 renderFile使用 me.setBaseDownloadPath(p.get("baseDownloadPath")); // 设置error渲染视图 me.setError403View(WebContant.error403View); me.setError404View(WebContant.error404View); me.setError500View(WebContant.error500View); //Json配置 me.setJsonFactory(FastJsonFactory.me()); //开启依赖注入 me.setInjectDependency(true); } /** * 配置JFinal路由映射 */ @Override public void configRoute(Routes me) { // 配置ControllerBind注解路由 AutoBindRoutes autoBindRoutes = new AutoBindRoutes(); autoBindRoutes.includeAllJarsInLib(!p.getBoolean("devMode")); autoBindRoutes.setBaseViewPath(WebContant.baseViewPath); me.add(autoBindRoutes); } /** * 配置JFinal插件 数据库连接池 ORM 缓存等插件 自定义插件 */ @Override public void configPlugin(Plugins me) { // 配置数据库连接池插件 DruidPlugin dbPlugin = new DruidPlugin(p.get("jdbcUrl"), p.get("user"), p.get("password").trim()); /** 配置druid监控 **/ dbPlugin.addFilter(new StatFilter()); WallFilter wall = new WallFilter(); wall.setDbType(p.get("dbType")); dbPlugin.addFilter(wall); // orm映射 配置ActiveRecord插件 ActiveRecordPlugin arp=new ActiveRecordPlugin(dbPlugin); //sql模板 arp.getEngine().setSourceFactory(new ClassPathSourceFactory()); arp.addSqlTemplate(WebContant.sqlTemplate); // sql输出到日志 SqlReporter.setLog(!p.getBoolean("devMode")); arp.setShowSql(p.getBoolean("devMode")); arp.setDialect(new MysqlDialect()); dbPlugin.setDriverClass(p.get("driverClass")); /******** 在此添加数据库 表-Model 映射 *********/ _MappingKit.mapping(arp); // 添加到插件列表中 me.add(dbPlugin); me.add(arp); // 配置缓存插件 me.add(new EhCachePlugin()); } /** * 配置全局拦截器 */ @Override public void configInterceptor(Interceptors me) { me.addGlobalActionInterceptor(new SessionInViewInterceptor()); me.addGlobalActionInterceptor(new SessionInterceptor()); me.addGlobalActionInterceptor(new ExceptionInterceptor()); me.addGlobalActionInterceptor(new LoggerInterceptor()); } /** * 配置全局处理器 */ @Override public void configHandler(Handlers me) { /** 配置druid监控 **/ me.add(DruidKit.getDruidStatViewHandler()); // 路由处理 me.add(new CommonHandler()); } /** * 配置模板引擎 */ @Override public void configEngine(Engine me) { // 这里只有选择JFinal TPL的时候才用 me.setDevMode(p.getBoolean("engineDevMode")); // 当前时间指令 me.addDirective("now", MyNowDirective.class); // 项目根路径 me.addSharedObject("path", JFinal.me().getContextPath()); // 项目名称 me.addSharedObject("projectName", p.get("projectName")); // 项目版权 me.addSharedObject("copyright", p.get("copyright")); // 配置共享函数模板 me.addSharedFunction(WebContant.functionTemp); } }
最近下载更多
werbgd LV2
2023年5月11日
1986王志飞 LV6
2022年8月12日
bluesky2016 LV15
2022年6月10日
tdcq123 LV14
2022年4月8日
aptx48692716 LV1
2022年2月14日
yangctz LV24
2022年1月11日
lwp011 LV27
2021年11月5日
ych0790 LV9
2021年4月27日
aaa最代码 LV14
2021年3月4日
飞翔的面包片 LV12
2020年12月24日
最近浏览更多
WBelong LV7
4月2日
1134116035
2月28日
暂无贡献等级
wwb521 LV7
2月15日
baozhenghua LV2
2023年12月8日
jiyun2021 LV9
2023年12月2日
泓鼎168 LV19
2023年10月26日
haotzy LV3
2023年10月8日
明天更美好 LV10
2023年6月17日
lhlhlhlh55
2023年6月12日
暂无贡献等级
微信网友_6516712266272768
2023年6月12日
暂无贡献等级