首页>代码>基于Jfinal权限工作流管理系统>/epoch-erp/src/main/java/com/epoch/platform/base/component/annotation/AutoBindRoutes.java
package com.epoch.platform.base.component.annotation; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.jfinal.config.Routes; import com.jfinal.core.Controller; import com.jfinal.kit.StrKit; public class AutoBindRoutes extends Routes{ private final Logger logger = LoggerFactory.getLogger(AutoBindModels.class); private List<Class<? extends Controller>> excludeClasses = new ArrayList<Class<? extends Controller>>(); private List<String> includeJars = new ArrayList<String>(); private boolean autoScan = true; private String suffix = "Controller"; public AutoBindRoutes() { this.setBaseViewPath("/WEB-INF"); } public AutoBindRoutes(boolean autoScan) { this.autoScan = autoScan; } public AutoBindRoutes addJar(String jarName) { if (StrKit.notBlank(jarName)) { includeJars.add(jarName); } return this; } public AutoBindRoutes addJars(String jarNames) { if (StrKit.notBlank(jarNames)) { addJars(jarNames.split(",")); } return this; } public AutoBindRoutes addJars(String[] jarsName) { includeJars.addAll(Arrays.asList(jarsName)); return this; } public AutoBindRoutes addJars(List<String> jarsName) { includeJars.addAll(jarsName); return this; } public AutoBindRoutes addExcludeClass(Class<? extends Controller> clazz) { if (clazz != null) { excludeClasses.add(clazz); } return this; } public AutoBindRoutes addExcludeClasses(Class<? extends Controller>[] clazzes) { excludeClasses.addAll(Arrays.asList(clazzes)); return this; } public AutoBindRoutes addExcludeClasses(List<Class<? extends Controller>> clazzes) { excludeClasses.addAll(clazzes); return this; } @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public void config() { List<Class<? extends Controller>> controllerClasses = ClassSearcher.findInClasspathAndJars(Controller.class, includeJars); ControllerBind controllerBind = null; for (Class controller : controllerClasses) { if (excludeClasses.contains(controller)) { continue; } controllerBind = (ControllerBind) controller.getAnnotation(ControllerBind.class); if (controllerBind == null) { if (!autoScan) { continue; } if (!controller.getSimpleName().endsWith(suffix)) { logger.info("routes.add " + controller.getName() + " is suffix not " + suffix); continue; } this.add(controllerKey(controller), controller); logger.info("routes.add(" + controllerKey(controller) + ", " + controller.getName() + ")"); } else if (StrKit.isBlank(controllerBind.viewPath())) { this.add(controllerBind.controllerKey(), controller); logger.info("routes.add(" + controllerBind.controllerKey() + ", " + controller.getName() + ")"); } else { this.add(controllerBind.controllerKey(), controller, controllerBind.viewPath()); logger.info("routes.add(" + controllerBind.controllerKey() + ", " + controller + "," + controllerBind.viewPath() + ")"); } } } private String controllerKey(Class<Controller> clazz) { String controllerKey = "/" + StrKit.firstCharToLowerCase(clazz.getSimpleName()); controllerKey = controllerKey.substring(0, controllerKey.indexOf(suffix)); return controllerKey; } public List<Class<? extends Controller>> getExcludeClasses() { return excludeClasses; } public void setExcludeClasses(List<Class<? extends Controller>> excludeClasses) { this.excludeClasses = excludeClasses; } public List<String> getIncludeJars() { return includeJars; } public void setIncludeJars(List<String> includeJars) { this.includeJars = includeJars; } public void setAutoScan(boolean autoScan) { this.autoScan = autoScan; } public String getSuffix() { return suffix; } public void setSuffix(String suffix) { this.suffix = suffix; } }
最近下载更多
pfb123456 LV8
2022年11月14日
xindong LV12
2022年6月24日
bluesky2016 LV15
2022年6月10日
xqyedu LV3
2022年6月10日
wanglinddad LV54
2022年5月29日
liangc09 LV2
2022年4月28日
liuzejuncn LV6
2022年3月27日
刘亦菲9527 LV15
2022年2月14日
yangctz LV24
2022年1月11日
李忆枫 LV8
2021年8月17日
最近浏览更多
490154865
3月4日
暂无贡献等级
1049066887 LV12
3月3日
dmy2008 LV6
2023年12月27日
tiansitong LV14
2023年12月24日
机器人2018
2023年12月4日
暂无贡献等级
dsadasdwf LV12
2023年10月23日
qq970040477 LV23
2023年8月28日
lhlhlhlh55
2023年6月13日
暂无贡献等级
微信网友_6260196253601792 LV7
2023年6月7日
jt82810 LV3
2023年5月1日