Browse Source

1.添加网关模块

1 1 month ago
parent
commit
9f776cd922

+ 4 - 0
imwork-assist/imwork-generator-service/pom.xml

@@ -29,6 +29,10 @@
             <groupId>top.imwork</groupId>
             <artifactId>imwork-commons-dao</artifactId>
         </dependency>
+        <dependency>
+            <groupId>top.imwork</groupId>
+            <artifactId>imwork-commons-alibaba</artifactId>
+        </dependency>
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>

+ 2 - 0
imwork-assist/imwork-generator-service/src/main/java/top/imwork/assist/generator/GeneratorServiceStart.java

@@ -3,6 +3,7 @@ package top.imwork.assist.generator;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 
 /**
  * Copyright (C), 2015-2023
@@ -14,6 +15,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  * History<历史描述>:
  * Since<版本号>: 1.0.0
  */
+@EnableDiscoveryClient
 @MapperScan(basePackages = "top.imwork.*.*.dao")
 @SpringBootApplication
 public class GeneratorServiceStart {

+ 18 - 1
imwork-assist/imwork-generator-service/src/main/resources/application.yml

@@ -6,13 +6,30 @@ spring:
   #解决bean重复定义
   main:
     allow-bean-definition-overriding: true
+  config:
+    import: nacos:${spring.application.name}
+  cloud:
+    nacos:
+      config:
+        server-addr: 127.0.0.1:8848
+        namespace: imwork-silos
+        group: DEFAULT_GROUP
+        file-extension: yml
+        username: admin
+        password: zh.3417.JXW
+      discovery:
+        server-addr: 127.0.0.1:8848
+        namespace: imwork-silos
+        file-extension: yml
+        username: admin
+        password: zh.3417.JXW
   #数据源
   datasource:
     username: root
     password: zh.3417.JXW
     #driver-class-name: org.postgresql.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://mysql.imwork.top:3306/imwork_silos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
+    url: jdbc:mysql://mysql.imwork.top:63306/imwork_silos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
     #Hikari 连接池配置
     type: com.zaxxer.hikari.HikariDataSource
     hikari:

+ 1 - 1
imwork-assist/imwork-generator-service/src/main/resources/db.properties

@@ -2,7 +2,7 @@ imwork.database= mysql
 
 mainPath=top.imwork
 packages=top.imwork
-moduleName=upms
+moduleName=silos
 author=jiangxiaowei
 #Email
 email=e-jiangxiaowei@outlook.com

+ 41 - 0
imwork-commons/imwork-commons-alibaba/pom.xml

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>top.imwork</groupId>
+        <artifactId>imwork-commons</artifactId>
+        <version>2025.11.1.0</version>
+    </parent>
+
+    <artifactId>imwork-commons-alibaba</artifactId>
+    <packaging>jar</packaging>
+    <description>公共模块-spring-cloud-alibaba</description>
+
+    <properties>
+        <maven.compiler.source>${java.version}</maven.compiler.source>
+        <maven.compiler.target>${java.version}</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 15 - 0
imwork-commons/imwork-commons-alibaba/src/main/java/top/imwork/commons/alibaba/SpringCloudAlibaba.java

@@ -0,0 +1,15 @@
+package top.imwork.commons.alibaba;
+
+/**
+ * Copyright (C), 2015-2023
+ * FileName: SpringCloudAlibaba
+ * Author<作者姓名>:   stars
+ * CreateTime<创建时间>:   2023/2/14 22:52
+ * UpdateTime<修改时间>:   2023/2/14 22:52
+ * Description〈功能简述〉: 阿里巴巴微服务组件
+ * History<历史描述>:
+ * Since<版本号>: 1.0.0
+ */
+public class SpringCloudAlibaba {
+
+}

+ 0 - 0
imwork-commons/imwork-commons-alibaba/src/main/resources/application.yml


+ 1 - 0
imwork-commons/pom.xml

@@ -17,6 +17,7 @@
     <modules>
         <module>imwork-commons-core</module>
         <module>imwork-commons-dao</module>
+        <module>imwork-commons-alibaba</module>
     </modules>
 
     <description>公共组件模块</description>

+ 57 - 0
imwork-iaas/imwork-gateway-service/pom.xml

@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>top.imwork</groupId>
+        <artifactId>imwork-iaas</artifactId>
+        <version>2025.11.1.0</version>
+    </parent>
+
+    <artifactId>imwork-gateway-service</artifactId>
+    <packaging>jar</packaging>
+    <description>统一网关服务</description>
+
+    <properties>
+        <maven.compiler.source>${java.version}</maven.compiler.source>
+        <maven.compiler.target>${java.version}</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>top.imwork</groupId>
+            <artifactId>imwork-commons-core</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-web</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>top.imwork</groupId>
+            <artifactId>imwork-commons-alibaba</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-gateway</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+        </dependency>
+        <!--webflux 相关包-->
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-webflux</artifactId>
+        </dependency>
+        <!--网关 swagger 聚合依赖-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-gateway-server</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 25 - 0
imwork-iaas/imwork-gateway-service/src/main/java/top/imwork/iaas/gateway/GatewayServiceStart.java

@@ -0,0 +1,25 @@
+package top.imwork.iaas.gateway;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+
+/**
+ * Copyright (C), 2015-2023
+ * FileName: BitHaloGatewayServiceStart
+ * Author<作者姓名>:   stars
+ * CreateTime<创建时间>:   2023/3/23 22:26
+ * UpdateTime<修改时间>:   2023/3/23 22:26
+ * Description〈功能简述〉: 网关服务启动类
+ * History<历史描述>:
+ * Since<版本号>: 1.0.0
+ */
+@RefreshScope
+@EnableDiscoveryClient
+@SpringBootApplication
+public class GatewayServiceStart {
+    public static void main(String[] args) {
+        SpringApplication.run(GatewayServiceStart.class, args);
+    }
+}

+ 152 - 0
imwork-iaas/imwork-gateway-service/src/main/resources/application.yml

@@ -0,0 +1,152 @@
+server:
+  port: 80
+spring:
+  application:
+    name: imwork-gateway-service
+  config:
+    import: nacos:${spring.application.name}
+  cloud:
+    nacos:
+      config:
+        server-addr: 127.0.0.1:8848
+        namespace: imwork-silos
+        group: DEFAULT_GROUP
+        file-extension: yml
+        username: admin
+        password: zh.3417.JXW
+      discovery:
+        server-addr: 127.0.0.1:8848
+        namespace: imwork-silos
+        file-extension: yml
+        username: admin
+        password: zh.3417.JXW
+    #路由网关配置
+    gateway:
+      globalcors:
+        cors-configurations:
+          '[/**]':
+            allowCredentials: true
+            #此处需要注意springboot2.4以前需配置为allowedOrigins
+            allowedOriginPatterns: "*"
+            allowedMethods: "*"
+            allowedHeaders: "*"
+      #设置与注册发现组件结合 以支持服务名的路由策略
+      discovery:
+        locator:
+          enabled: true
+          lower-case-service-id: true
+      #配置路由规则
+      routes:
+        - id: imwork-silos
+          uri: lb://imwork-silos
+          predicates:
+            - Path=/silos/**
+          filters:
+            - StripPrefix=1
+        - id: imwork-silos
+          #指向服务
+          uri: lb://imwork-silos
+          predicates:
+            #路径匹配 直接配置不生效需配合filters
+            - Path=/assets/**
+        - id: imwork-silos
+          #指向服务
+          uri: lb://imwork-silos
+          predicates:
+            #路径匹配 直接配置不生效需配合filters
+            - Path=/business/**
+        #自定义路由id
+        - id: imwork-upms-service
+          #指向服务
+          uri: lb://imwork-upms-service
+          predicates:
+            #路径匹配 直接配置不生效需配合filters
+            - Path=/upms/**
+          filters:
+            #默认情况下访问会带上服务名配置后会不显示服务名
+            - StripPrefix=1
+        - id: imwork-uaa-service
+          uri: lb://imwork-uaa-service
+          predicates:
+            - Path=/uaa/**
+          filters:
+            - StripPrefix=1
+        - id: imwork-admin-service
+          uri: lb://imwork-admin-service
+          predicates:
+            - Path=/admin/**
+          filters:
+            - StripPrefix=1
+        - id: imwork-admin-service
+          #指向服务
+          uri: lb://imwork-admin-service
+          predicates:
+            #路径匹配 直接配置不生效需配合filters
+            - Path=/assets/**
+        - id: imwork-admin-service
+          #指向服务
+          uri: lb://imwork-admin-service
+          predicates:
+            #路径匹配 直接配置不生效需配合filters
+            - Path=/business/**
+        - id: imwork-generator-service
+          #指向服务
+          uri: lb://imwork-generator-service
+          predicates:
+            #路径匹配 直接配置不生效需配合filters
+            - Path=/generator/**
+  main:
+    allow-bean-definition-overriding: true
+  jackson:
+    time-zone: GMT+8
+    date-format: yyyy-MM-dd HH:mm:ss
+management:
+  endpoints:
+    web:
+      exposure:
+        include: "*"
+
+#日志配置
+logging:
+  charset:
+    # 输出控制台编码
+    console: UTF-8
+    # 输出文件编码
+    file: UTF-8
+  logback:
+    rollingpolicy:
+      # 日志保存的天数
+      max-history: 15
+      # 单文件的大小,默认10M, 超过之后打包成一个日志文件
+      max-file-size: 10MB
+      # 打包文件格式,默认: ${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz,书写格式为:文件路径/文件名.%i.文件后缀,其中%i不可省去,否则无日志显示
+      # 例如: 日期为:2021/11/5 ,则打包文件之后为: log/ota.2021-11-05.0.gz,0表示日志的第一部分,后续就是,1,2,3...
+      # 如果是压缩包,里面会多一个名log/ota.2021-11-05.0的日志文件
+      # 如下面的例子,打包之后为: log/2021-11/ota.2020-11-5.0.log,这是一个日志文件
+      # file-name-pattern: /app/yssk/@artifactId@/%d{yyyy-MM-dd}/@artifactId@.%d{yyyy-MM-dd}.%i.log
+      file-name-pattern: "@base.logs.home@/%d{yyyy-MM-dd}/@artifactId@.%d{yyyy-MM-dd}.%i.log"
+  level:
+    root: INFO
+    org.springframework.web: error
+    # security 日志
+    org.springframework.security: error
+    org.hibernate: error
+    # mybatis日志
+    org.mybatis: error
+    javax.activation: info
+    org.apache.catalina: INFO
+    org.apache.commons.beanutils.converters: INFO
+    org.apache.coyote.http11.Http11Processor: INFO
+    org.apache.http: INFO
+    org.apache.tomcat: INFO
+    org.springframework: INFO
+    # 开启调试模式,打印sql
+    com.example.onecli.product.mapper: DEBUG
+    # 这里是自己的mapper包路径
+    top.imwork: info
+  pattern:
+    console: "%d{yyyy-mm-dd hh:mm:ss.ss} --> [%thread] %-5level %logger{50} - %msg%n"
+    file: "%d{yyyy-mm-dd hh:mm:ss.ss} --> [%thread] %-5level %logger{50} - %msg%n"
+  # 输出文件名及路径,不配置则不输出文件
+  file:
+    name: "@base.logs.home@/@artifactId@/@artifactId@.log"

+ 3 - 0
imwork-iaas/pom.xml

@@ -12,6 +12,9 @@
     <artifactId>imwork-iaas</artifactId>
     <packaging>pom</packaging>
     <description>统一基础设施服务</description>
+    <modules>
+        <module>imwork-gateway-service</module>
+    </modules>
 
     <properties>
         <maven.compiler.source>${java.version}</maven.compiler.source>

+ 4 - 0
imwork-windows/imwork-silos/pom.xml

@@ -32,6 +32,10 @@
             <groupId>top.imwork</groupId>
             <artifactId>imwork-commons-dao</artifactId>
         </dependency>
+        <dependency>
+            <groupId>top.imwork</groupId>
+            <artifactId>imwork-commons-alibaba</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-thymeleaf</artifactId>

+ 2 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/SilosStart.java

@@ -2,6 +2,7 @@ package top.imwork.window.silos;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 
 /**
  * Copyright (C), 2015-2025
@@ -13,6 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  * History<历史描述>:
  * Since<版本号>: 1.0.0
  */
+@EnableDiscoveryClient
 @SpringBootApplication
 public class SilosStart {
     public static void main(String[] args) {

+ 20 - 3
imwork-windows/imwork-silos/src/main/resources/application.yml

@@ -1,8 +1,25 @@
 server:
-  port: 80
+  port: 7002
 spring:
   application:
     name: imwork-silos
+  config:
+    import: nacos:${spring.application.name}
+  cloud:
+    nacos:
+      config:
+        server-addr: 127.0.0.1:8848
+        namespace: imwork-silos
+        group: DEFAULT_GROUP
+        file-extension: yml
+        username: admin
+        password: zh.3417.JXW
+      discovery:
+        server-addr: 127.0.0.1:8848
+        namespace: imwork-silos
+        file-extension: yml
+        username: admin
+        password: zh.3417.JXW
   mvc:
     pathmatch:
       matching-strategy: ant_path_matcher
@@ -88,8 +105,8 @@ logging:
     # 这里是自己的mapper包路径
     top.imwork: info
   pattern:
-    console: "%d{yyyy-mm-dd hh:mm:ss.sss} --> [%thread] %-5level %logger{50} - %msg%n"
-    file: "%d{yyyy-mm-dd hh:mm:ss.sss} --> [%thread] %-5level %logger{50} - %msg%n"
+    console: "%d{yyyy-mm-dd hh:mm:ss.ss} --> [%thread] %-5level %logger{50} - %msg%n"
+    file: "%d{yyyy-mm-dd hh:mm:ss.ss} --> [%thread] %-5level %logger{50} - %msg%n"
   # 输出文件名及路径,不配置则不输出文件
   file:
     name: "@base.logs.home@/@artifactId@/@artifactId@.log"

+ 1 - 1
imwork-windows/imwork-silos/src/main/resources/static/business/generator/list.js

@@ -8,7 +8,7 @@ layui.use(['form', 'layer', 'table', 'laytpl'], function () {
     //列表
     var tableIns = table.render({
         elem: '#list',
-        url: '/generator/list',
+        url: '/generator/generator/list',
         cellMinWidth: 95,
         page: true,
         height: "full-125",

+ 1 - 1
imwork-windows/imwork-silos/src/main/resources/templates/main/index.html

@@ -55,7 +55,7 @@
             <li class="canvas-nav-item">
                 <a href="javascript:;" id="hah"><i class="fa fa-database icons"></i><span>数据管理</span><i class="layui-icon layui-icon-right icon-right"></i></a>
                 <ul>
-                    <li><a href="/generator/generator.html" class="tabs"><span>代码生成</span></a></li>
+                    <li><a href="/silos/generator/generator.html" class="tabs"><span>代码生成</span></a></li>
                     <li><a href="/admin/welcome.html" class="tabs"><span>网站设置</span></a></li>
                     <li><a href="/admin/login/login.html" class="tabs"><span>友情链接</span></a></li>
                     <li><a href="/admin/cms/article/article-detail.html" class="tabs"><span>分类管理</span></a></li>

+ 1 - 1
pom.xml

@@ -286,7 +286,7 @@
                 <base.config.nacos.password>zh.3417.JXW</base.config.nacos.password>
                 <base.logs.home>/app/logs/</base.logs.home>
                 <!-- 环境标识,需要与配置文件的名称相对应 -->
-                <profiles.active>dev</profiles.active>
+                <profiles.active>imwork-silos</profiles.active>
             </properties>
             <activation>
                 <!-- 默认环境 -->