Browse Source

开放 ActionMapping 扩展

James 4 years ago
parent
commit
7bd34a0753

+ 13 - 0
src/main/java/com/jfinal/config/Constants.java

@@ -454,6 +454,19 @@ final public class Constants {
 	public void setToJavaAwtHeadless() {
 		System.setProperty("java.awt.headless", "true");
 	}
+	
+	// ---------
+	
+	// 支持扩展 ActionMapping
+	private java.util.function.Function<Routes, com.jfinal.core.ActionMapping> actionMappingFunc = null;
+	
+	public void setActionMapping(java.util.function.Function<Routes, com.jfinal.core.ActionMapping> func) {
+		this.actionMappingFunc = func;
+	}
+	
+	public java.util.function.Function<Routes, com.jfinal.core.ActionMapping> getActionMappingFunc() {
+		return actionMappingFunc;
+	}
 }
 
 

+ 6 - 1
src/main/java/com/jfinal/core/JFinal.java

@@ -99,7 +99,12 @@ public final class JFinal {
 	}
 	
 	private void initActionMapping() {
-		actionMapping = new ActionMapping(Config.getRoutes());
+		if (constants.getActionMappingFunc() != null) {
+			actionMapping = constants.getActionMappingFunc().apply(Config.getRoutes());
+		} else {
+			actionMapping = new ActionMapping(Config.getRoutes());
+		}
+		
 		actionMapping.buildActionMapping();
 		Config.getRoutes().clear();
 	}