package com.demo.common;

import org.eclipse.jetty.server.handler.ContextHandler;

import com.demo.blog.BlogController;
import com.demo.common.model._MappingKit;
import com.demo.index.IndexController;
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.handler.ContextPathHandler;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.template.Engine;

/**
 * 本 demo 仅表达最为粗浅的 jfinal 用法,更为有价值的实用的企业级用法
 * 详见 JFinal 俱乐部: http://jfinal.com/club
 * 
 * API引导式配置
 */
public class DemoConfig extends JFinalConfig {
	
	/**
	 * 运行此 main 方法可以启动项目,此main方法可以放置在任意的Class类定义中,不一定要放于此
	 * 
	 * 使用本方法启动过第一次以后,会在开发工具的 debug、run config 中自动生成
	 * 一条启动配置,可对该自动生成的配置再添加额外的配置项,例如 VM argument 可配置为:
	 * -XX:PermSize=64M -XX:MaxPermSize=256M
	 */
	public static void main(String[] args) {
		/**
		 * 特别注意:Eclipse 之下建议的启动方式
		 */
		JFinal.start("WebRoot", 80, "/", 5);

		/**
		 * 特别注意:IDEA 之下建议的启动方式,仅比 eclipse 之下少了最后一个参数
		 */
		// JFinal.start("WebRoot", 80, "/");
	}
	
	/**
	 * 配置常量
	 */
	public void configConstant(Constants me) {
		// 加载少量必要配置,随后可用PropKit.get(...)获取值
		PropKit.use("a_little_config.txt");
		me.setDevMode(PropKit.getBoolean("devMode", false));
	}
	
	/**
	 * 配置路由
	 */
	public void configRoute(Routes me) {
		me.add("/", IndexController.class, "/index");	// 第三个参数为该Controller的视图存放路径
		me.add("/blog", BlogController.class);			// 第三个参数省略时默认与第一个参数值相同,在此即为 "/blog"
	}
	
	public void configEngine(Engine me) {
		me.addSharedFunction("/common/_layout.html");
		me.addSharedFunction("/common/_paginate.html");
	}
	
	public static DruidPlugin createDruidPlugin() {
		System.out.println(PropKit.get("url"));
		System.out.println(PropKit.get("user"));
		return new DruidPlugin(PropKit.get("url"), PropKit.get("user"), PropKit.get("password").trim());
	}
	
	/**
	 * 配置插件
	 */
	public void configPlugin(Plugins me) {
		// 配置C3p0数据库连接池插件
		DruidPlugin druidPlugin = createDruidPlugin();
		me.add(druidPlugin);
		
		// 配置ActiveRecord插件
		ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
		// 所有映射在 MappingKit 中自动化搞定
		_MappingKit.mapping(arp);
		me.add(arp);
	}
	
	/**
	 * 配置全局拦截器
	 */
	public void configInterceptor(Interceptors me) {
		
	}
	
	/**
	 * 配置处理器
	 */
	public void configHandler(Handlers me) {
		
		me.add(new ContextPathHandler("ctx_path"));//获取工程名作为路径
	}
}
最近下载更多
何满子  LV1 2021年3月23日
happybee0915  LV1 2020年12月16日
aaa最代码  LV14 2020年8月4日
lyq3323  LV2 2020年4月1日
xiaoxiaowu  LV1 2019年11月13日
1024171254  LV7 2019年10月18日
shuohaobuku  LV1 2019年9月18日
877016923  LV1 2019年8月15日
七七7777777  LV1 2019年8月15日
dfyang  LV3 2019年8月5日
最近浏览更多
sans111 4月1日
暂无贡献等级
沈从文  LV2 1月1日
微信网友_6802139027345408  LV2 2023年12月31日
lhlhlhlh55 2023年6月12日
暂无贡献等级
werbgd  LV2 2023年5月11日
刘亦菲9527  LV15 2021年12月14日
cqbscxh  LV11 2021年11月22日
孙龙52  LV6 2021年11月2日
fudong588  LV2 2021年9月23日
Altria  LV5 2021年8月13日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友