MyConfig.java 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. package com.mall.config;
  2. import com.alibaba.druid.wall.WallFilter;
  3. import com.jfinal.config.*;
  4. import com.jfinal.core.JFinal;
  5. import com.jfinal.ext.handler.ContextPathHandler;
  6. import com.jfinal.ext.interceptor.SessionInViewInterceptor;
  7. import com.jfinal.kit.PropKit;
  8. import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
  9. import com.jfinal.plugin.activerecord.tx.TxByMethodRegex;
  10. import com.jfinal.plugin.druid.DruidPlugin;
  11. import com.jfinal.plugin.druid.DruidStatViewHandler;
  12. import com.jfinal.plugin.ehcache.EhCachePlugin;
  13. import com.jfinal.render.ViewType;
  14. import com.jfinal.template.Engine;
  15. import com.jfinal.weixin.sdk.api.ApiConfig;
  16. import com.jfinal.weixin.sdk.api.ApiConfigKit;
  17. import com.mall.controller.act.ActInfoController;
  18. import com.mall.controller.common.CommonController;
  19. import com.mall.controller.common.IndexController;
  20. import com.mall.controller.common.WechatApiController;
  21. import com.mall.controller.common.WechatMsgController;
  22. import com.mall.controller.merchant.MerchantController;
  23. import com.mall.controller.product.*;
  24. import com.mall.controller.sys.*;
  25. import com.mall.controller.user.*;
  26. import com.mall.controller.wx.*;
  27. import com.mall.model._MappingKit;
  28. import com.mall.model.sys.SysRoleBtn;
  29. import com.mall.quartz.QuartzPlugin;
  30. import org.apache.log4j.Logger;
  31. /**
  32. * API引导式配置
  33. */
  34. public class MyConfig extends JFinalConfig {
  35. private static Logger logger = Logger.getLogger(MyConfig.class);
  36. /**
  37. * 配置常量
  38. */
  39. public void configConstant(Constants me) {
  40. PropKit.use("config.properties"); // 加载少量必要配置,随后可用PropKit.get(...)获取值
  41. me.setDevMode(PropKit.getBoolean("devMode", false));
  42. me.setViewType(ViewType.JSP);// 2.2中默认的视图为jsp
  43. me.setEncoding("utf-8");
  44. me.setError404View("common/404.jsp");
  45. me.setError500View("common/500.jsp");
  46. }
  47. /**
  48. * 配置路由
  49. * base ==“/”== webcontent目录下
  50. * me.add(第一个参数是请求路径,第二个参数是哪个class响应,第三个参数是响应的web子目录)
  51. */
  52. public void configRoute(Routes me) {
  53. me.add("/", IndexController.class,"/web"); // 第三个参数为该Controller的视图存放路径
  54. me.add("/common", CommonController.class, "/web");//公共
  55. me.add("/sysUser", SysUserController.class, "/web");// 用户
  56. me.add("/sysDept", SysDeptController.class, "/web");// 部门
  57. me.add("/sysRole", SysRoleController.class, "/web");// 角色
  58. me.add("/sysRoleMenu", SysRoleMenuController.class, "/web");// 角色菜单
  59. me.add("/sysRoleBtn", SysRoleBtnController.class, "/web");// 角色按钮
  60. me.add("/sysUserRole", SysUserRoleController.class, "/web");// 用户角色
  61. me.add("/sysMenu", SysMenuController.class, "/web");// 菜单
  62. me.add("/sysMenuBtn", SysMenuBtnController.class, "/web");// 菜单按钮
  63. me.add("/sysCode", SysCodeController.class, "/web");// 编码
  64. me.add("/sysDictType", SysDictTypeController.class, "/web"); // 字典类型
  65. me.add("/sysDictDetail", SysDictDetailController.class, "/web"); // 数据字典
  66. me.add("/sysControlParam", SysControlParamController.class, "/web"); // 控制参数
  67. me.add("/sysCustom", SysCustomController.class, "/web"); // 客服设置
  68. me.add("/sysAmount", SysAmountController.class, "/web"); // 收款管理
  69. me.add("/sysCompany", SysCompanyController.class, "/web"); // 公司管理
  70. me.add("/product",ProductController.class,"/web");//商品
  71. me.add("/productCard",ProductCardController.class,"/web");//商品抵用券
  72. me.add("/productExchange",ProductExchangeController.class,"/web");//商品
  73. me.add("/productBrand",ProductBrandController.class,"/web");//商品品牌
  74. me.add("/productCategory",ProductCategoryController.class,"/web");//商品分类
  75. me.add("/users",UsersController.class,"/web");//会员
  76. me.add("/userAddress",UserAddressController.class,"/web");//收货地址
  77. me.add("/userCart",UserCartController.class,"/web");//购物车
  78. me.add("/userMsg",UserMsgController.class,"/web");//会员消息
  79. me.add("/userFeedback",UserFeedbackController.class,"/web");//会员反馈
  80. me.add("/userComplain",UserComplainController.class,"/web");//会员反馈
  81. me.add("/userOrderComment",UserOrderCommentController.class,"/web");//订单评价
  82. me.add("/userOrder",UserOrderController.class,"/web");//订单
  83. me.add("/userOrderDetail",UserOrderDetailController.class,"/web");//订单明细
  84. me.add("/userOrderPay",UserOrderPayController.class,"/web");//订单支付日志
  85. me.add("/userCollect",UserCollectController.class,"/web");//商品收藏
  86. me.add("/userIntegral",UserIntegralController.class,"/web");//会员积分
  87. me.add("/userMoney",UserMoneyController.class,"/web");//会员余额
  88. me.add("/userCardOrder",UserCardOrderController.class,"/web");//会员水票订单
  89. me.add("/userCard",UserCardController.class,"/web");//会员水票
  90. me.add("/userViewLog",UserViewLogController.class,"/web");//访问日志
  91. me.add("/userShareLog",UserShareLogController.class,"/web");//分享日志
  92. me.add("/userCoupon",UserCouponController.class,"/web");//优惠券
  93. me.add("/cutInfo", CutInfoController.class,"/web");//砍价信息
  94. me.add("/cutDetail",CutDetailController.class,"/web");//砍价详情
  95. me.add("/wxNav", WxNavController.class, "/web");// 微信首页导航
  96. me.add("/wxMenu", WxMenuController.class, "/web");// 微信菜单
  97. me.add("/wxMsg", WxMsgController.class, "/web");// 微信图文消息
  98. me.add("/wxMsgType", WxMsgTypeController.class, "/web");// 微信图文消息类型
  99. me.add("/wxReply", WxReplyController.class, "/web");// 微信回复消息
  100. me.add("/msg", WechatMsgController.class, "/mobile");// 微信响应
  101. me.add("/wechat", WechatApiController.class, "/mobile");// 微信接口
  102. me.add("/actInfo", ActInfoController.class, "/web");// 活动信息
  103. me.add("/merchant", MerchantController.class, "/web");// 商户信息
  104. }
  105. /**
  106. * 配置插件
  107. */
  108. public void configPlugin(Plugins me) {
  109. logger.info("配置插件开始..");
  110. DruidPlugin dp = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password"));
  111. WallFilter wf = new WallFilter();
  112. wf.setDbType("mysql");
  113. dp.addFilter(wf);
  114. dp.setConnectionInitSql("set names utf8mb4;");
  115. me.add(dp);
  116. // 配置ActiveRecord插件
  117. ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
  118. me.add(arp);
  119. // 所有配置在 MappingKit 中搞定
  120. _MappingKit.mapping(arp);
  121. QuartzPlugin quartz = new QuartzPlugin();
  122. me.add(quartz);
  123. // 配置Ecache插件
  124. me.add(new EhCachePlugin());
  125. logger.info("配置插件结束..");
  126. }
  127. /**
  128. * 配置全局拦截器
  129. */
  130. public void configInterceptor(Interceptors me) {
  131. me.add(new TxByMethodRegex("(.*submit.*|.*save.*|.*update.*|.*delete.*)"));// 2.2改动
  132. me.add(new SessionInViewInterceptor());
  133. }
  134. /**
  135. * 配置处理器
  136. */
  137. public void configHandler(Handlers me) {
  138. logger.info("配置处理器开始..");
  139. me.add(new ContextPathHandler("base"));
  140. DruidStatViewHandler dsvh = new DruidStatViewHandler("/druid");
  141. me.add(dsvh);
  142. logger.info("配置处理器结束..");
  143. }
  144. @Override
  145. public void afterJFinalStart() {
  146. logger.info("afterJFinalStart开始..");
  147. ApiConfig ac = new ApiConfig();
  148. // 配置微信 API 相关参数
  149. ac.setToken(PropKit.get("token"));
  150. ac.setAppId(PropKit.get("appId"));
  151. ac.setAppSecret(PropKit.get("appSecret"));
  152. /**
  153. * 是否对消息进行加密,对应于微信平台的消息加解密方式:
  154. * 1:true进行加密且必须配置 encodingAesKey
  155. * 2:false采用明文模式,同时也支持混合模式
  156. */
  157. ac.setEncryptMessage(PropKit.getBoolean("encryptMessage", false));
  158. ac.setEncodingAesKey(PropKit.get("encodingAesKey", "setting it in config file"));
  159. ApiConfigKit.putApiConfig(ac);
  160. // 网站域名
  161. JFinal.me().getServletContext().setAttribute("siteUrl", PropKit.get("siteUrl"));
  162. // 网站名称
  163. JFinal.me().getServletContext().setAttribute("siteName", PropKit.get("siteName"));
  164. // 版本号
  165. JFinal.me().getServletContext().setAttribute("version", PropKit.get("version"));
  166. // 图片服务器地址
  167. JFinal.me().getServletContext().setAttribute("imgUrl", PropKit.get("imgUrl"));
  168. // 图片上传路径
  169. JFinal.me().getServletContext().setAttribute("uploadPath", PropKit.get("uploadPath"));
  170. // 角色按钮
  171. JFinal.me().getServletContext().setAttribute("roleBtns", SysRoleBtn.dao.findAll());
  172. // 添加定时任务 end
  173. logger.info("afterJFinalStart结束..");
  174. }
  175. public static void main(String[] args) {
  176. JFinal.start("WebRoot", 80, "/chinaservices_app", 5);
  177. }
  178. @Override
  179. public void configEngine(Engine arg0) {
  180. }
  181. }