diff --git a/generator-web/src/main/java/com/softdev/system/generator/config/ServerConfig.java b/generator-web/src/main/java/com/softdev/system/generator/config/ServerConfig.java index b54673c..9a6595a 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/config/ServerConfig.java +++ b/generator-web/src/main/java/com/softdev/system/generator/config/ServerConfig.java @@ -4,9 +4,12 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.boot.web.context.WebServerInitializedEvent; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; +import java.net.Inet4Address; +import java.net.InetAddress; +import java.net.UnknownHostException; /** - * @Description 动态获取tomcat启动端口,控制台打印项目访问地址 + * @Description 通过实现ApplicationListener接口动态获取tomcat启动端口和访问路径,通过InetAddress类获取主机的ip地址,最后控制台打印项目访问地址 * @Author Gao Hang Hang * @Date 2019-12-27 14:37 **/ @@ -14,15 +17,20 @@ import org.springframework.stereotype.Component; @Slf4j public class ServerConfig implements ApplicationListener { - private int serverPort; - private String serverPath; - @Override public void onApplicationEvent(WebServerInitializedEvent event) { - this.serverPort = event.getWebServer().getPort(); - //新增动态path by zhengkai - this.serverPath = event.getApplicationContext().getApplicationName(); - log.info("项目启动启动成功!访问地址: http://localhost:{}{}", serverPort,serverPath); + try { + InetAddress inetAddress = Inet4Address.getLocalHost(); + // 主机ip地址 + String hostAddress = inetAddress.getHostAddress(); + // tomcat启动端口 + int serverPort = event.getWebServer().getPort(); + // 新增动态path by zhengkai + String serverPath = event.getApplicationContext().getApplicationName(); + log.info("项目启动启动成功!访问地址: http://{}:{}{}", hostAddress, serverPort, serverPath); + } catch (UnknownHostException e) { + e.printStackTrace(); + } } } diff --git a/generator-web/src/main/java/com/softdev/system/generator/controller/IndexController.java b/generator-web/src/main/java/com/softdev/system/generator/controller/IndexController.java index 528cb5b..1ad7c20 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/controller/IndexController.java +++ b/generator-web/src/main/java/com/softdev/system/generator/controller/IndexController.java @@ -1,90 +1,87 @@ -package com.softdev.system.generator.controller; - -import com.alibaba.fastjson.JSON; -import com.softdev.system.generator.entity.ClassInfo; -import com.softdev.system.generator.entity.ParamInfo; -import com.softdev.system.generator.entity.ReturnT; -import com.softdev.system.generator.service.GeneratorService; -import com.softdev.system.generator.util.CodeGenerateException; -import com.softdev.system.generator.util.TableParseUtil; -import freemarker.template.TemplateException; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.ResponseBody; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -/** - * spring boot code generator - * @author zhengk/moshow - */ -@Controller -@Slf4j -public class IndexController { - - @Autowired - private GeneratorService generatorService; - - @GetMapping("/") - public String index() { - return "index"; - } - - @PostMapping("/genCode") - @ResponseBody - public ReturnT> codeGenerate(@RequestBody ParamInfo paramInfo ) { - - try { - - if (StringUtils.isBlank(paramInfo.getTableSql())) { - return new ReturnT<>(ReturnT.FAIL_CODE, "表结构信息不可为空"); - } - - // parse table - ClassInfo classInfo = null; - switch (paramInfo.getDataType()){ - //parse json - case "json":classInfo = TableParseUtil.processJsonToClassInfo(paramInfo);break; - //parse sql by regex - case "sql-regex":classInfo = TableParseUtil.processTableToClassInfoByRegex(paramInfo);break; - //default parse sql by java - default : classInfo = TableParseUtil.processTableIntoClassInfo(paramInfo);break; - } - - // process the param - Map params = new HashMap(8); - params.put("classInfo", classInfo); - params.put("tableName", classInfo==null?System.currentTimeMillis():classInfo.getTableName()); - params.put("authorName", paramInfo.getAuthorName()); - params.put("packageName", paramInfo.getPackageName()); - params.put("returnUtil", paramInfo.getReturnUtil()); - params.put("swagger", paramInfo.isSwagger()); - - //log the params - //log.info(JSON.toJSONString(paramInfo)); - - log.info("generator table:"+(classInfo==null?"":classInfo.getTableName()) - +",field size:"+((classInfo==null||classInfo.getFieldList()==null)?"":classInfo.getFieldList().size())); - - // generate the code 需要加新的模板请在里面改 - Map result = generatorService.getResultByParams(params); - - return new ReturnT<>(result); - } catch (IOException | TemplateException e) { - log.error(e.getMessage(), e); - return new ReturnT<>(ReturnT.FAIL_CODE, e.getMessage()); - } catch (CodeGenerateException e) { - log.error(e.getMessage(), e); - return new ReturnT<>(ReturnT.FAIL_CODE, e.getMessage()); - } - - } - -} +package com.softdev.system.generator.controller; + +import com.alibaba.fastjson.JSON; +import com.softdev.system.generator.entity.ClassInfo; +import com.softdev.system.generator.entity.ParamInfo; +import com.softdev.system.generator.entity.ReturnT; +import com.softdev.system.generator.service.GeneratorService; +import com.softdev.system.generator.util.CodeGenerateException; +import com.softdev.system.generator.util.TableParseUtil; +import freemarker.template.TemplateException; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * spring boot code generator + * @author zhengk/moshow + */ +@Controller +@Slf4j +public class IndexController { + + @Autowired + private GeneratorService generatorService; + + @GetMapping("/") + public String index() { + return "index"; + } + + @PostMapping("/genCode") + @ResponseBody + public ReturnT> codeGenerate(@RequestBody ParamInfo paramInfo ) { + + try { + + if (StringUtils.isBlank(paramInfo.getTableSql())) { + return new ReturnT<>(ReturnT.FAIL_CODE, "表结构信息不可为空"); + } + + // parse table + ClassInfo classInfo = null; + switch (paramInfo.getDataType()){ + //parse json + case "json":classInfo = TableParseUtil.processJsonToClassInfo(paramInfo);break; + //parse sql by regex + case "sql-regex":classInfo = TableParseUtil.processTableToClassInfoByRegex(paramInfo);break; + //default parse sql by java + default : classInfo = TableParseUtil.processTableIntoClassInfo(paramInfo);break; + } + + // process the param + Map params = new HashMap(8); + params.put("classInfo", classInfo); + params.put("tableName", classInfo==null?System.currentTimeMillis():classInfo.getTableName()); + params.put("authorName", paramInfo.getAuthorName()); + params.put("packageName", paramInfo.getPackageName()); + params.put("returnUtil", paramInfo.getReturnUtil()); + params.put("swagger", paramInfo.isSwagger()); + + //log the params + //log.info(JSON.toJSONString(paramInfo)); + + log.info("generator table:"+(classInfo==null?"":classInfo.getTableName()) + +",field size:"+((classInfo==null||classInfo.getFieldList()==null)?"":classInfo.getFieldList().size())); + + // generate the code 需要加新的模板请在里面改 + Map result = generatorService.getResultByParams(params); + + return new ReturnT<>(result); + } catch (IOException | TemplateException | CodeGenerateException e) { + log.error(e.getMessage(), e); + return new ReturnT<>(ReturnT.FAIL_CODE, e.getMessage()); + } + + } + +}