diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index ec6f8d01..ad90836d 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -21,13 +21,13 @@ jobs: build: strategy: matrix: - java: [ '11', '17', '21' ] + java: [ '17', '21' ] os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 - - name: Set up JDK ${{ matrix.Java }} + - name: Set up JDK ${{ matrix.java }} uses: actions/setup-java@v5 with: java-version: ${{ matrix.java }} @@ -36,5 +36,4 @@ jobs: - name: Build with Maven run: mvn -B package --file pom.xml '-Dmaven.test.skip=true' - name: Check spring-javaformat - if: matrix.java != '11' run: mvn spring-javaformat:validate diff --git a/README.md b/README.md index f3c0c404..7dec60f4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## 项目介绍 -当前项目基于java17, 1.8版本请查看分支genCode-3.3, 11版本请查看分支genCode-4.1 +当前项目基于java17与Spring Boot 3,1.8版本请查看分支genCode-3.3, 11版本请查看分支genCode-4.1 本项目功能: diff --git a/pom.xml b/pom.xml index ed67e473..c5198c67 100644 --- a/pom.xml +++ b/pom.xml @@ -2,23 +2,23 @@ 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.7.18 - - + + org.springframework.boot + spring-boot-starter-parent + 3.3.5 + + com.tlcsdm genCode - 4.1 + 5.0 jar genCode 代码生成 - 11 + 17 yyyy-MM-dd 2.17.0 - 1.2.27 + 1.2.23 5.1.49 3.5.6 12.1.0.2 @@ -44,23 +44,20 @@ org.springframework.boot spring-boot-starter-freemarker - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-tomcat - - - - - org.springframework.boot - spring-boot-starter-undertow - + + org.springframework.boot + spring-boot-starter-web + + + + javax.servlet + javax.servlet-api + 4.0.1 + runtime + com.alibaba - druid-spring-boot-starter + druid-spring-boot-3-starter ${druid-spring-boot-starter.version} @@ -120,6 +117,10 @@ spring-boot-starter-test test + + org.springframework.boot + spring-boot-starter-actuator + diff --git a/src/main/java/com/tlcsdm/gen/base/BaseUtils.java b/src/main/java/com/tlcsdm/gen/base/BaseUtils.java index 95fd20d0..2625281e 100644 --- a/src/main/java/com/tlcsdm/gen/base/BaseUtils.java +++ b/src/main/java/com/tlcsdm/gen/base/BaseUtils.java @@ -3,10 +3,10 @@ import com.alibaba.druid.util.StringUtils; import lombok.Cleanup; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletOutputStream; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.*; import java.net.InetAddress; import java.net.URLEncoder; diff --git a/src/main/java/com/tlcsdm/gen/config/GenAutoConfig.java b/src/main/java/com/tlcsdm/gen/config/GenAutoConfig.java index bacf2942..c4336b1a 100644 --- a/src/main/java/com/tlcsdm/gen/config/GenAutoConfig.java +++ b/src/main/java/com/tlcsdm/gen/config/GenAutoConfig.java @@ -1,6 +1,6 @@ package com.tlcsdm.gen.config; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; +import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; diff --git a/src/main/java/com/tlcsdm/gen/config/RemoveDruidAdConfig.java b/src/main/java/com/tlcsdm/gen/config/RemoveDruidAdConfig.java index 927452e4..9b0d97ad 100644 --- a/src/main/java/com/tlcsdm/gen/config/RemoveDruidAdConfig.java +++ b/src/main/java/com/tlcsdm/gen/config/RemoveDruidAdConfig.java @@ -1,16 +1,17 @@ package com.tlcsdm.gen.config; -import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; -import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties; +import com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure; +import com.alibaba.druid.spring.boot3.autoconfigure.properties.DruidStatProperties; import com.alibaba.druid.util.Utils; import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import javax.servlet.*; +import jakarta.servlet.*; import java.io.IOException; /** @@ -31,6 +32,7 @@ public class RemoveDruidAdConfig { * 方法名: removeDruidAdFilterRegistrationBean 方法描述: 除去页面底部的广告 * @return org.springframework.boot.web.servlet.FilterRegistrationBean */ + @ConditionalOnBean(DruidStatProperties.class) @Bean public FilterRegistrationBean removeDruidAdFilterRegistrationBean(DruidStatProperties properties) { // 获取web监控页面的参数 diff --git a/src/main/java/com/tlcsdm/gen/config/RpcConfig.java b/src/main/java/com/tlcsdm/gen/config/RpcConfig.java deleted file mode 100644 index ebeccadd..00000000 --- a/src/main/java/com/tlcsdm/gen/config/RpcConfig.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.tlcsdm.gen.config; - -import com.tlcsdm.gen.service.RpcService; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter; -import org.springframework.remoting.rmi.RmiServiceExporter; - -/** - * RMI远程调用配置 - * - *

- * 客户端代码

-
- * @Configuration
- * public class RpcClient {
- *
- *     @Bean
- *     public RmiProxyFactoryBean RmiRpcService() {
- *         RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean();
- *         rmiProxyFactoryBean.setServiceUrl("rmi://127.0.0.1:8769/rpcService");
- *         rmiProxyFactoryBean.setServiceInterface(RpcService.class);
- *         return rmiProxyFactoryBean;
- *     }
- *
- *     //@Bean
- *     //public HttpInvokerProxyFactoryBean HttpInvokerRpcService() {
- *     //    HttpInvokerProxyFactoryBean httpInvokerProxyFactoryBean = new HttpInvokerProxyFactoryBean();
- *     //    httpInvokerProxyFactoryBean.setServiceUrl("http://127.0.0.1:8669/gen/invoker");
- *     //    httpInvokerProxyFactoryBean.setServiceInterface(RpcService.class);
- *     //    return httpInvokerProxyFactoryBean;
- *     //}
- * }
- *
- *
- * @SpringBootTest
- * public class RpcTest {
- *     @Autowired
- *     private RpcService rpcService;
- *
-
-@Test
- *     public void excel() throws Exception {
- *         System.out.println(rpcService.getGitInfo());
- *     }
- * }
- * 
- *

- * @author: TangLiang - * @date: 2021/12/13 13:46 - * @since: 1.0 - */ -@Configuration -@RequiredArgsConstructor -@ConditionalOnProperty(name = "gen.rpc.enabled", havingValue = "true") -public class RpcConfig { - - private final RpcService rpcService; - - @Value("${gen.rpc.rmiPort}") - private int rmiPort; - - @Value("${gen.rpc.rmiServiceName}") - private String rmiServiceName; - - @Bean - @ConditionalOnProperty(name = "gen.rpc.rmi", havingValue = "true") - public RmiServiceExporter getRmiServiceExporter() { - RmiServiceExporter rmiServiceExporter = new RmiServiceExporter(); - rmiServiceExporter.setServiceName(rmiServiceName); - rmiServiceExporter.setService(rpcService); - rmiServiceExporter.setServiceInterface(RpcService.class); - rmiServiceExporter.setRegistryPort(rmiPort); - return rmiServiceExporter; - } - - /** - * org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping 它的作用就是把Spring - * MVC上下文中以“/”开头的Bean进行对外提供服务 - */ - @Bean("/invoker") - @ConditionalOnProperty(name = "gen.rpc.httpInvoker", havingValue = "true") - public HttpInvokerServiceExporter getHttpInvokerServiceExporter() { - HttpInvokerServiceExporter httpInvokerServiceExporter = new HttpInvokerServiceExporter(); - httpInvokerServiceExporter.setService(rpcService); - httpInvokerServiceExporter.setServiceInterface(RpcService.class); - return httpInvokerServiceExporter; - } - -} diff --git a/src/main/java/com/tlcsdm/gen/config/UndertowPoolCustomizer.java b/src/main/java/com/tlcsdm/gen/config/UndertowPoolCustomizer.java deleted file mode 100644 index 191e31b6..00000000 --- a/src/main/java/com/tlcsdm/gen/config/UndertowPoolCustomizer.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.tlcsdm.gen.config; - -import io.undertow.server.DefaultByteBufferPool; -import io.undertow.websockets.jsr.WebSocketDeploymentInfo; -import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory; -import org.springframework.boot.web.server.WebServerFactoryCustomizer; -import org.springframework.stereotype.Component; - -/** - * undertow服务器配置buffer pool 解决启动警告 无当前类不影响项目启动 - * - * @author: TangLiang - * @date: 2021/10/2 19:57 - * @since: 1.0 - */ -@Component -public class UndertowPoolCustomizer implements WebServerFactoryCustomizer { - - @Override - public void customize(UndertowServletWebServerFactory factory) { - factory.addDeploymentInfoCustomizers(deploymentInfo -> { - WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo(); - webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(false, 1024)); - deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", - webSocketDeploymentInfo); - }); - } - -} diff --git a/src/main/java/com/tlcsdm/gen/controller/CommonController.java b/src/main/java/com/tlcsdm/gen/controller/CommonController.java index 9ae4f64a..c2e9f5fe 100644 --- a/src/main/java/com/tlcsdm/gen/controller/CommonController.java +++ b/src/main/java/com/tlcsdm/gen/controller/CommonController.java @@ -14,8 +14,8 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/com/tlcsdm/gen/controller/DataBaseDocumentController.java b/src/main/java/com/tlcsdm/gen/controller/DataBaseDocumentController.java index ebbaeb27..056389e2 100644 --- a/src/main/java/com/tlcsdm/gen/controller/DataBaseDocumentController.java +++ b/src/main/java/com/tlcsdm/gen/controller/DataBaseDocumentController.java @@ -11,8 +11,8 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/com/tlcsdm/gen/controller/GenCodeController.java b/src/main/java/com/tlcsdm/gen/controller/GenCodeController.java index d0194d80..36dd5761 100644 --- a/src/main/java/com/tlcsdm/gen/controller/GenCodeController.java +++ b/src/main/java/com/tlcsdm/gen/controller/GenCodeController.java @@ -14,8 +14,8 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/com/tlcsdm/gen/controller/GenProcedureController.java b/src/main/java/com/tlcsdm/gen/controller/GenProcedureController.java index 4179caff..77125610 100644 --- a/src/main/java/com/tlcsdm/gen/controller/GenProcedureController.java +++ b/src/main/java/com/tlcsdm/gen/controller/GenProcedureController.java @@ -25,8 +25,8 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/com/tlcsdm/gen/controller/GitInfoController.java b/src/main/java/com/tlcsdm/gen/controller/GitInfoController.java deleted file mode 100644 index dccf27ce..00000000 --- a/src/main/java/com/tlcsdm/gen/controller/GitInfoController.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.tlcsdm.gen.controller; - -import com.tlcsdm.common.annotation.Log; -import com.tlcsdm.gen.base.BaseUtils; -import com.tlcsdm.gen.service.RpcService; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.io.IOException; -import java.util.Map; - -/** - * git信息 - * - * @author: TangLiang - * @date: 2021/11/26 9:52 - * @since: 1.0 - */ -@RestController -@RequiredArgsConstructor -public class GitInfoController { - - private final RpcService rpcService; - - /** - * 获取git信息 - */ - @GetMapping("getGitInfo") - @Log(title = "git信", operateType = "获取git信息") - public Map getGitInfo() throws IOException { - return BaseUtils.success(rpcService.getGitInfo()); - } - -} diff --git a/src/main/java/com/tlcsdm/gen/domain/GenProperty.java b/src/main/java/com/tlcsdm/gen/domain/GenProperty.java index b3464810..53bed0d3 100644 --- a/src/main/java/com/tlcsdm/gen/domain/GenProperty.java +++ b/src/main/java/com/tlcsdm/gen/domain/GenProperty.java @@ -26,25 +26,8 @@ public class GenProperty { private Boolean async; - private GenRpc rpc = new GenRpc(); - private GenShutDown shutdown = new GenShutDown(); - @Data - private static class GenRpc { - - private Boolean enabled; - - private Boolean rmi; - - private int rmiPort; - - private String rmiServiceName; - - private Boolean httpInvoker; - - } - @Data private static class GenShutDown { diff --git a/src/main/java/com/tlcsdm/gen/service/RpcService.java b/src/main/java/com/tlcsdm/gen/service/RpcService.java deleted file mode 100644 index 631cc5aa..00000000 --- a/src/main/java/com/tlcsdm/gen/service/RpcService.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.tlcsdm.gen.service; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import java.io.IOException; -import java.util.Map; - -/** - * RMI远程调用服务 - * - * @author: TangLiang - * @date: 2021/12/13 13:45 - * @since: 1.0 - */ -public interface RpcService { - - /** - * 获取git信息 - */ - Map getGitInfo() throws IOException; - - /** - * 获取项目自定义配置 - */ - String getGenProperty() throws JsonProcessingException; - - /** - * 开启定时 - */ - String startSchedule(); - - /** - * 关闭定时 - */ - String stopSchedule(); - -} diff --git a/src/main/java/com/tlcsdm/gen/service/impl/RpcServiceImpl.java b/src/main/java/com/tlcsdm/gen/service/impl/RpcServiceImpl.java deleted file mode 100644 index 0625abdb..00000000 --- a/src/main/java/com/tlcsdm/gen/service/impl/RpcServiceImpl.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.tlcsdm.gen.service.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.tlcsdm.gen.base.BaseUtils; -import com.tlcsdm.gen.domain.GenProperty; -import com.tlcsdm.gen.service.RpcService; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; -import org.springframework.stereotype.Service; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Map; - -/** - * @author: TangLiang - * @date: 2021/12/13 13:46 - * @since: 1.0 - */ -@Service -@RequiredArgsConstructor -public class RpcServiceImpl implements RpcService { - - private final ObjectMapper objectMapper; - - private final GenProperty genProperty; - - @Value("${schedule.enabled}") - private Boolean enabled; - - @Override - public Map getGitInfo() throws IOException { - Resource resource = new ClassPathResource("git.properties"); - if (!resource.exists()) { - throw new FileNotFoundException("git.properties文件未找到"); - } - String versionJson = BaseUtils.inputStreamToString(resource.getInputStream()); - Map map = objectMapper.readValue(versionJson, new TypeReference>() { - }); - return map; - } - - @Override - public String getGenProperty() throws JsonProcessingException { - return objectMapper.writeValueAsString(genProperty); - } - - @Override - public String startSchedule() { - if (!enabled) { - return "定时任务模块未初始化,无法进行启动停止操作"; - } - if (genProperty.getSchedule()) { - return "定时任务已启动"; - } - genProperty.setSchedule(true); - return "定时任务成功启动"; - } - - @Override - public String stopSchedule() { - if (!enabled) { - return "定时任务模块未初始化,无法进行启动停止操作"; - } - if (!genProperty.getSchedule()) { - return "定时任务已停止"; - } - genProperty.setSchedule(false); - return "定时任务成功停止"; - } - -} diff --git a/src/main/java/com/tlcsdm/gen/service/impl/dataBaseInfo/NoDataBaseInfoServiceImpl.java b/src/main/java/com/tlcsdm/gen/service/impl/dataBaseInfo/NoDataBaseInfoServiceImpl.java index cd520d53..7ea420fb 100644 --- a/src/main/java/com/tlcsdm/gen/service/impl/dataBaseInfo/NoDataBaseInfoServiceImpl.java +++ b/src/main/java/com/tlcsdm/gen/service/impl/dataBaseInfo/NoDataBaseInfoServiceImpl.java @@ -5,7 +5,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Service; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; @@ -99,4 +99,4 @@ public int deleteDataBaseInfo(String ID) { return 1; } -} \ No newline at end of file +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 90318f84..cdc94937 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -2,16 +2,14 @@ server: port: 8669 servlet: context-path: /gen - undertow: + tomcat: accesslog: - enabled: true # 是否打开 undertow 日志,默认为 false - dir: logs/gen # 设置访问日志所在目录 + enabled: true + directory: logs/gen threads: - io: 8 - worker: 256 - buffer-size: 1024 - direct-buffers: true - allow-encoded-slash: true + min-spare: 8 + max: 256 + allow-encoded-slashes: true shutdown: graceful spring: application: @@ -103,23 +101,14 @@ thread: ## isdb: 配置项目是否有数据库,默认有数据库,false为内存存储 ## schedule: 定时任务开关 ## async: 异步开关 -## rpc: enabled rpc开关 -## rpc: rmi RMI远程调用开关 -## rpc: httpInvoker HttpInvoker开关 ## shutdown: enabled shutdown接口开关,用于通过请求关闭项目 ## shutdown: password shutdown接口请求密钥 gen: - isdb: true + isdb: false schedule: ${schedule.enabled} async: ${thread.enabled} version: @version@ author: unknowIfGuestInDream - rpc: - enabled: true - rmi: false - rmiPort: 8769 - rmiServiceName: rpcService - httpInvoker: true shutdown: enabled: true password: gen diff --git a/src/main/resources/file/README.md b/src/main/resources/file/README.md index 5aec0e5a..5b272721 100644 --- a/src/main/resources/file/README.md +++ b/src/main/resources/file/README.md @@ -53,7 +53,6 @@ druid监控账号密码默认都为admin * AbstractTableToProcedure 表生成过程相关接口 * AbstractGenCodeModel 表生成代码相关接口 * DataBaseDocumentService 生成数据库文档 -* RpcService RMI远程调用服务(试验用) ## 新增规范,模板以及数据库 * 如需要添加自己的命名规范则新增 NameConventService 的实现类并新增枚举类NameConventType参数, @@ -76,4 +75,4 @@ druid监控账号密码默认都为admin ## 其它 -如果有问题或者需求可以发送邮件或者提交Issues tang97155@gmail.com或tang97155@163.com \ No newline at end of file +如果有问题或者需求可以发送邮件或者提交Issues tang97155@gmail.com或tang97155@163.com diff --git a/src/main/resources/templates/pages/index.html b/src/main/resources/templates/pages/index.html index a6c0bdf5..3b3e6b7a 100644 --- a/src/main/resources/templates/pages/index.html +++ b/src/main/resources/templates/pages/index.html @@ -50,7 +50,6 @@