首页>代码>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     LV25
                2022年1月11日
            
            
        
                lwp011     LV27
                2021年11月5日
            
            
        
                ych0790     LV9
                2021年4月27日
            
            
        
                aaa最代码     LV14
                2021年3月4日
            
            
        
                飞翔的面包片     LV13
                2020年12月24日
            
            
        
最近浏览更多
                
                微信网友_6956978011000832     LV2
                6月30日
            
            
        
                xiao1111     LV3
                2024年5月14日
            
            
        
                myfz0662     LV10
                2024年5月8日
            
            
        
                WBelong     LV8
                2024年4月2日
            
            
        
                1134116035    
                2024年2月28日
            
            
                    暂无贡献等级
            
        
                wwb521     LV7
                2024年2月15日
            
            
        
                baozhenghua     LV2
                2023年12月8日
            
            
        
                jiyun2021     LV9
                2023年12月2日
            
            
        
                泓鼎168     LV20
                2023年10月26日
            
            
        
                haotzy     LV3
                2023年10月8日
            
            
        
                
                
                