From 47e3087067abd35e6337c011f96d2338c0bb1aae Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 25 七月 2024 13:39:31 +0800 Subject: [PATCH] 优化自动化代码 --- src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java | 24 ++++++++++++++++-------- 1 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java b/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java index 0ba0094..f9a2b7d 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java +++ b/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java @@ -3,11 +3,11 @@ import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; import org.yeshi.utils.generater.GeneraterManagerV2; import org.yeshi.utils.generater.annotation.admin.DaoQueryCondition; import org.yeshi.utils.generater.annotation.admin.Show; import org.yeshi.utils.generater.annotation.admin.form.Text; +import org.yeshi.utils.generater.entity.ClassInfo; import org.yeshi.utils.generater.entity.admin.FormVerifyType; import org.yeshi.utils.generater.vo.xmlconfig.admin.*; import org.yeshi.utils.generater.vo.xmlconfig.admin.form.*; @@ -21,8 +21,9 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import java.io.*; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -36,7 +37,7 @@ */ public class XmlConfigParseUtil { - public static GenertorConfig parse(InputStream inputStream) throws IOException, ParserConfigurationException, SAXException, ClassNotFoundException { + public static GenertorConfig parse(InputStream inputStream, ClassLoader classLoader) throws Exception { if (inputStream == null) { throw new FileNotFoundException(); } @@ -45,9 +46,12 @@ DocumentBuilder builder = factory.newDocumentBuilder(); Document root = builder.parse(inputStream); NodeList nodelist = root.getElementsByTagName("generator-config"); + if (nodelist.getLength() == 0) { + throw new Exception("xml鏍煎紡閿欒"); + } Node rootNode = nodelist.item(0); String clazz = rootNode.getAttributes().getNamedItem("class").getNodeValue(); - genertorConfig.setEntity(Class.forName(clazz)); + genertorConfig.setEntity(classLoader.loadClass(clazz)); nodelist = rootNode.getChildNodes(); for (int i = 0; i < nodelist.getLength(); i++) { @@ -66,8 +70,6 @@ genertorConfig.setAdmin(parseAdmin(node)); } break; - - } @@ -108,12 +110,17 @@ data.setImplPackage(getNodeAttributeValue(node, "implPackage")); data.setQueryPackage(getNodeAttributeValue(node, "queryPackage")); + NodeList nodeList = node.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { if (nodeList.item(i).getNodeName().equalsIgnoreCase("exception")) { ExceptionData exceptionData = new ExceptionData(); exceptionData.setPkg(getNodeAttributeValue(nodeList.item(i), "package")); exceptionData.setName(getNodeAttributeValue(nodeList.item(i), "name")); + String base = getNodeAttributeValue(nodeList.item(i), "base"); + if (base != null) { + exceptionData.setBase(new ClassInfo(base.split("\\.")[base.split("\\.").length - 1], base)); + } data.setException(exceptionData); break; } @@ -201,6 +208,7 @@ adminControllerData.setMapping(getNodeAttributeValue(node1, "mapping")); adminControllerData.setName(getNodeAttributeValue(node1, "name")); adminControllerData.setPkg(getNodeAttributeValue(node1, "package")); + adminControllerData.setAdminVOPackage(getNodeAttributeValue(node1, "adminVOPackage")); adminControllerData.setResponseBody(Boolean.parseBoolean(getNodeAttributeValue(node1, "responseBody"))); adminData.setController(adminControllerData); } @@ -415,7 +423,7 @@ public static void main(String[] args) throws Exception { - GenertorConfig config = XmlConfigParseUtil.parse(new FileInputStream("D:\\workspace\\server\\utils\\src\\test\\test.xml")); + GenertorConfig config = XmlConfigParseUtil.parse(new FileInputStream("D:\\workspace\\server\\utils\\src\\test\\test.xml"), null); GeneraterManagerV2.getInstance().init("D:\\workspace\\server\\utils\\src\\test\\java", config); GeneraterManagerV2.getInstance().createWholeFunction(); System.out.println(config); -- Gitblit v1.8.0