记得之前有人说过想在JFinal启动的时候打印一下路由表的信息, 地址和UI地址等, 前两天晚上顺手写了一个简版的, 感觉也没什么luan用... 不过还是分享出来吧, 可能有人会喜欢这个功能的.... 不多说, 上 石马
PrintRoutesKit.java
package com.momathink.common.kit; import java.util.ArrayList; import java.util.List; import com.jfinal.config.Routes; import com.jfinal.core.Controller; import com.jfinal.core.JFinal; /** * 路由信息 打印工具(推荐放在最后一个路由位置) * * @author 杜福忠 2018-11-11 20:59:13 * */ public class PrintRoutesKit { public static void println(final Routes firstRoutes) { firstRoutes.add(new Routes() { private StringBuilder sb; @Override public void config() { if (JFinal.me().getConstants().getDevMode()) { sb = new StringBuilder(512); List<Routes> routesList = getRoutesList(); List<Routes> pRoutes = new ArrayList<>( routesList.size() + 1); pRoutes.add(firstRoutes); pRoutes.addAll(routesList); int i = 0; String name; for (Routes routes : pRoutes) { name = routes.getClass().getName(); for (Route route : routes.getRouteItemList()) { packaging(name, route.getControllerKey(), route.getControllerClass(), route.getFinalViewPath( routes.getBaseViewPath())); i++; } } println("PrintRoutes总计: " + i); sb = null; } } private void packaging(String name, String controllerKey, Class<? extends Controller> controllerClass, String viewPath) { sb.append(name); sb.append(" --------------------------\n"); sb.append("Url : ").append(controllerKey).append("\n"); sb.append("Controller : ").append(controllerClass.getName()) .append(".(").append(controllerClass.getSimpleName()) .append(".java:1)\n"); sb.append("View : ").append(viewPath); sb.append("\n"); println(sb.toString()); sb.setLength(0); } private void println(String string) { System.out.println(string); } }); } }
使用方式:
/** * 配置路由表 */ @Override public void configRoute(Routes me) { // 加自己的 路由表 me.add(....); //.... // 最后一行加入打印路由表功能, 否则只能打印它前面的 PrintRoutesKit.println(me); }
打印的效果:
喜欢就点个赞呗~