Переглянути джерело

1、数据源配置修改
2、循环依赖处理

zuy 2 роки тому
батько
коміт
0be4748cb3

+ 21 - 1
admin/src/main/resources/application.yml

@@ -1,7 +1,27 @@
 spring:
   application:
-    name: miniapp
+    name: admin
   datasource:
+    druid: #以下是全局默认值,可以全局更改
+      #监控统计拦截的filters
+      filters: stat,slf4j
+      #配置初始化大小/最小/最大
+      initial-size: 2
+      min-idle: 2
+      max-active: 20
+      #获取连接等待超时时间
+      max-wait: 60000
+      #间隔多久进行一次检测,检测需要关闭的空闲连接
+      time-between-eviction-runs-millis: 60000
+      #一个连接在池中最小生存的时间
+      min-evictable-idle-time-millis: 300000
+      validation-query: SELECT 'x'
+      test-while-idle: true
+      test-on-borrow: false
+      test-on-return: false
+      #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
+      pool-prepared-statements: false
+      max-pool-prepared-statement-per-connection-size: 20
     dynamic:
       primary: db-admin
       strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源

+ 7 - 0
common/pom.xml

@@ -24,6 +24,13 @@
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-configuration-processor</artifactId>

+ 6 - 6
common/src/main/java/com/kym/common/utils/IPUtils.java

@@ -1,6 +1,6 @@
 package com.kym.common.utils;
 
-import com.alibaba.druid.util.StringUtils;
+import cn.hutool.core.util.StrUtil;
 import jakarta.servlet.http.HttpServletRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -24,19 +24,19 @@ public class IPUtils {
         String ip = null;
         try {
             ip = request.getHeader("x-forwarded-for");
-            if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
+            if (StrUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
                 ip = request.getHeader("Proxy-Client-IP");
             }
-            if (StringUtils.isEmpty(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            if (StrUtil.isEmpty(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
                 ip = request.getHeader("WL-Proxy-Client-IP");
             }
-            if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
+            if (StrUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
                 ip = request.getHeader("HTTP_CLIENT_IP");
             }
-            if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
+            if (StrUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
                 ip = request.getHeader("HTTP_X_FORWARDED_FOR");
             }
-            if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
+            if (StrUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
                 ip = request.getRemoteAddr();
             }
         } catch (Exception e) {

+ 6 - 0
entity/pom.xml

@@ -23,6 +23,12 @@
             <artifactId>lombok</artifactId>
             <optional>true</optional>
         </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.5.3.1</version>
+        </dependency>
     </dependencies>
 
 </project>

+ 2 - 6
mapper/pom.xml

@@ -30,17 +30,13 @@
             <version>3.5.3.1</version>
         </dependency>
 
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-boot-starter</artifactId>
-            <version>3.5.3.1</version>
-        </dependency>
+
 
         <!-- 多数据源配置 -->
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
-            <version>4.1.2</version>
+            <version>3.6.0</version>
         </dependency>
 
 

+ 1 - 1
common/src/main/java/com/kym/common/utils/MybatisPlusGenerator.java → mapper/src/main/java/com/kym/mapper/MybatisPlusGenerator.java

@@ -1,4 +1,4 @@
-package com.kym.common.utils;
+package com.kym.mapper;
 
 import com.baomidou.mybatisplus.generator.FastAutoGenerator;
 import com.baomidou.mybatisplus.generator.config.OutputFile;

+ 2 - 2
mapper/src/main/resources/mappers/miniapp/CollectionMapper.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.kym.mapper.miniapp.CollectionMapper">
+<mapper namespace="com.kym.mapper.miniapp.CollectMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.kym.entity.miniapp.Collection">
+    <resultMap id="BaseResultMap" type="com.kym.entity.miniapp.Collect">
         <id column="id" property="id" />
         <result column="user_id" property="userId" />
         <result column="station_id" property="stationId" />

+ 3 - 1
miniapp/src/main/java/com/kym/miniapp/MiniAppApplication.java

@@ -6,12 +6,14 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
 import org.springframework.cache.annotation.EnableCaching;
 
+
 /**
  * 小程序启动器
  *
  * @author skyline
  */
-@SpringBootApplication(scanBasePackages = {"com.kym"}, exclude = DataSourceAutoConfiguration.class)
+@SpringBootApplication(scanBasePackages = {"com.kym"},exclude = DataSourceAutoConfiguration.class)
+//@ComponentScan(basePackages = {"com.kym"},excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = "com.kym.admin.*"))
 @MapperScan(basePackages = {"com.kym.mapper"})
 @EnableCaching
 public class MiniAppApplication {

+ 3 - 3
miniapp/src/main/java/com/kym/miniapp/controller/ChargerController.java

@@ -46,9 +46,9 @@ public class ChargerController {
         return R.success(response);
     }
 
-    @SysLog("充电站统计")
-    @GetMapping("stationStatus")
-    R stationStatus(@RequestParam("stationId") String stationId,
+    @SysLog("充电详情")
+    @GetMapping("stationStatusDetail")
+    R stationStatusDetail(@RequestParam("stationId") String stationId,
                     @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd") String startTime,
                     @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd") String endTime) {
         // 请求en+接口

+ 22 - 1
miniapp/src/main/resources/application.yml

@@ -2,6 +2,26 @@ spring:
   application:
     name: miniapp
   datasource:
+    druid: #以下是全局默认值,可以全局更改
+      #监控统计拦截的filters
+      filters: stat,slf4j
+      #配置初始化大小/最小/最大
+      initial-size: 2
+      min-idle: 2
+      max-active: 20
+      #获取连接等待超时时间
+      max-wait: 60000
+      #间隔多久进行一次检测,检测需要关闭的空闲连接
+      time-between-eviction-runs-millis: 60000
+      #一个连接在池中最小生存的时间
+      min-evictable-idle-time-millis: 300000
+      validation-query: SELECT 'x'
+      test-while-idle: true
+      test-on-borrow: false
+      test-on-return: false
+      #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
+      pool-prepared-statements: false
+      max-pool-prepared-statement-per-connection-size: 20
     dynamic:
       primary: db-miniapp
       strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
@@ -17,8 +37,9 @@ spring:
           password: 123456
           driver-class-name: com.mysql.cj.jdbc.Driver
 
+
 mybatis-plus:
-  mapper-locations: classpath*:/mappers/**/*.xml
+  mapper-locations: classpath:mappers/**/*.xml
 #  type-aliases-package: com.kym.entity.admin
 
   main:

+ 19 - 0
pom.xml

@@ -25,7 +25,13 @@
     <properties>
         <java.version>17</java.version>
     </properties>
+
     <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
 
 
     </dependencies>
@@ -53,5 +59,18 @@
 
     </build>
 
+    <repositories>
+        <repository>
+            <id>aliyun</id>
+            <url>https://maven.aliyun.com/repository/central/</url>
+            <releases>
+                <enabled>true</enabled>
+            </releases>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+    </repositories>
+
 
 </project>

+ 5 - 1
service/src/main/java/com/kym/service/enplus/impl/EnPlusServiceHelper.java

@@ -21,9 +21,13 @@ public class EnPlusServiceHelper {
      * 解决方法: 将方法抽离到一个独立类中
      */
 
-    @Autowired
     private EnPlusService enPlusService;
 
+    @Autowired
+    public  void setEnPlusService(EnPlusService enPlusService){
+        this.enPlusService = enPlusService;
+    }
+
     @Cacheable(cacheNames = "EN_PLUS" ,key = "#root.methodName") //有个坑,@Cacheable 注解在对象内部调用不会生效,参考:https://blog.csdn.net/zh452647457/article/details/86487423
     public String queryToken() {
         return enPlusService.queryToken();

+ 2 - 0
service/src/main/java/com/kym/service/enplus/impl/EnPlusServiceImpl.java

@@ -18,6 +18,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
@@ -46,6 +47,7 @@ public class EnPlusServiceImpl implements EnPlusService {
     private RedisTemplate<String, String> redisTemplate;
 
     @Autowired
+    @Lazy
     private EnPlusServiceHelper enPlusServiceHelper;
 
     public static <T> T parse(String json, Class<T> clz) {

+ 2 - 0
service/src/main/java/com/kym/service/miniapp/impl/AccountServiceImpl.java

@@ -1,5 +1,6 @@
 package com.kym.service.miniapp.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.kym.entity.miniapp.Account;
 import com.kym.mapper.miniapp.AccountMapper;
 import com.kym.service.miniapp.AccountService;
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
  * @since 2023-07-26
  */
 @Service
+@DS("miniapp")
 public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> implements AccountService {
 
 }