From dddc80e7f6f65e0c9ccdf77cb87d6a9b847da495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Thu, 12 Sep 2024 17:09:31 +0800 Subject: [PATCH] 'commit' --- .idea/misc.xml | 2 +- ds-base/Dockerfile | 5 +- ds-base/pom.xml | 4 +- .../com/dsideal/base/BaseApplication.java | 4 +- .../Controller/LoginPersonController.java | 26 +-- .../java/com/dsideal/base/Util/PkUtil.java | 13 +- .../java/com/dsideal/base/Util/RedisKit.java | 84 -------- .../java/com/dsideal/base/Util/RedisUtil.java | 194 ------------------ ds-build/src/main/java/build_ds_base.java | 1 - ds-build/src/main/java/build_ds_gw.java | 1 - 10 files changed, 25 insertions(+), 309 deletions(-) delete mode 100644 ds-base/src/main/java/com/dsideal/base/Util/RedisKit.java delete mode 100644 ds-base/src/main/java/com/dsideal/base/Util/RedisUtil.java diff --git a/.idea/misc.xml b/.idea/misc.xml index a9fc6872..8078ecc0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -21,5 +21,5 @@ - + \ No newline at end of file diff --git a/ds-base/Dockerfile b/ds-base/Dockerfile index 80c74b00..0310cfb7 100644 --- a/ds-base/Dockerfile +++ b/ds-base/Dockerfile @@ -1,7 +1,4 @@ -FROM alpine:latest -RUN apk add --no-cache openjdk21 -ENV JAVA_HOME /usr/lib/jvm/java-21-openjdk -ENV PATH $PATH:$JAVA_HOME/bin +FROM openjdk:8u332-jre-slim-bullseye AS runner # WORKDIR指令用于设置容器内部的工作目录,即后续指令执行时的当前目录。当Docker容器启动并执行命令时,这些命令将在WORKDIR指定的目录中执行。 WORKDIR /root diff --git a/ds-base/pom.xml b/ds-base/pom.xml index 048f0d60..9c5c3c8a 100644 --- a/ds-base/pom.xml +++ b/ds-base/pom.xml @@ -190,11 +190,11 @@ dom4j 2.1.4 - + redis.clients jedis - 5.1.0 + 3.9.0 diff --git a/ds-base/src/main/java/com/dsideal/base/BaseApplication.java b/ds-base/src/main/java/com/dsideal/base/BaseApplication.java index 9b623460..7b01f85d 100644 --- a/ds-base/src/main/java/com/dsideal/base/BaseApplication.java +++ b/ds-base/src/main/java/com/dsideal/base/BaseApplication.java @@ -28,7 +28,6 @@ import com.jfinal.plugin.druid.IDruidStatViewAuth; import com.jfinal.plugin.redis.RedisPlugin; import com.jfinal.server.undertow.UndertowServer; import com.jfinal.template.Engine; - import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import java.io.File; @@ -145,8 +144,7 @@ public class BaseApplication extends JFinalConfig { //加载 me.add(arp); // 用于缓存模块的redis服务 - RedisPlugin redis = new RedisPlugin("Redis", PropKit.get("redis_ip"), PropKit.getInt("redis_port"), 10 * 1000, PropKit.get("redis_password")); - //启动redis组件 + RedisPlugin redis = new RedisPlugin("myRedis", PropKit.get("redis_ip"), PropKit.getInt("redis_port"), 10 * 1000,PropKit.get("redis_password")); me.add(redis); } diff --git a/ds-base/src/main/java/com/dsideal/base/LoginPerson/Controller/LoginPersonController.java b/ds-base/src/main/java/com/dsideal/base/LoginPerson/Controller/LoginPersonController.java index e977a5c5..5126055e 100644 --- a/ds-base/src/main/java/com/dsideal/base/LoginPerson/Controller/LoginPersonController.java +++ b/ds-base/src/main/java/com/dsideal/base/LoginPerson/Controller/LoginPersonController.java @@ -52,8 +52,8 @@ public class LoginPersonController extends Controller { String checkCodeKey = "Yzm_error_" + username; int CheckCodeErrCnt = 4; //最多允许错几次 4+1 int CheckCodecntNum = 0; //错几次了 - if (RedisKit.Exists(checkCodeKey)) - CheckCodecntNum = Integer.parseInt(RedisKit.Get(checkCodeKey).toString()); + if (Redis.use().exists(checkCodeKey)) + CheckCodecntNum = Integer.parseInt(Redis.use().get(checkCodeKey).toString()); if (CheckCodecntNum > CheckCodeErrCnt) { resultJson.put("success", false); resultJson.put("msg", "账号已被停用5分钟,请稍后再试!"); @@ -62,10 +62,10 @@ public class LoginPersonController extends Controller { } if (!memory_captcha.equals(captcha.toLowerCase())) { CheckCodecntNum = 1; - if (RedisKit.Exists(checkCodeKey)) - CheckCodecntNum = Integer.parseInt(RedisKit.Get(checkCodeKey).toString()) + CheckCodecntNum; - RedisKit.Set(checkCodeKey, String.valueOf(CheckCodecntNum)); - RedisKit.Expire(checkCodeKey, 60 * 5); + if (Redis.use().exists(checkCodeKey)) + CheckCodecntNum = Integer.parseInt(Redis.use().get(checkCodeKey).toString()) + CheckCodecntNum; + Redis.use().set(checkCodeKey, String.valueOf(CheckCodecntNum)); + Redis.use().expire(checkCodeKey, 60 * 5); if (CheckCodecntNum == CheckCodeErrCnt) { resultJson.put("success", false); @@ -101,7 +101,7 @@ public class LoginPersonController extends Controller { String PassWordKey = "WrongPassWord_" + username; int ErrCnt = 4; //最多允许错几次 4+1 int cntNum = 0; //错几次了 - if (RedisKit.Exists(PassWordKey)) cntNum = Integer.parseInt(RedisKit.Get(PassWordKey).toString()); + if (Redis.use().exists(PassWordKey)) cntNum = Integer.parseInt(Redis.use().get(PassWordKey).toString()); if (cntNum > ErrCnt) { resultJson.put("success", false); resultJson.put("msg", "账号被停用5分钟,请稍后再试!"); @@ -120,10 +120,10 @@ public class LoginPersonController extends Controller { if (loginMap == null || !passwordEncode.equals(loginMap.get("password").toString())) { //扩展支持连续输入用户名密码错误,停用账号5分钟功能 2022.06.07 cntNum = 1; - if (RedisKit.Exists(PassWordKey)) - cntNum = Integer.parseInt(RedisKit.Get(PassWordKey).toString()) + cntNum; - RedisKit.Set(PassWordKey, String.valueOf(cntNum)); - RedisKit.Expire(PassWordKey, 60 * 5); + if (Redis.use().exists(PassWordKey)) + cntNum = Integer.parseInt(Redis.use().get(PassWordKey).toString()) + cntNum; + Redis.use().set(PassWordKey, String.valueOf(cntNum)); + Redis.use().expire(PassWordKey, 60 * 5); if (cntNum > ErrCnt) { resultJson.put("success", false); resultJson.put("msg", "密码连续输入" + (ErrCnt + 1) + "次全部错误,账号将被停用5分钟!"); @@ -142,8 +142,8 @@ public class LoginPersonController extends Controller { return; } //去掉限制 - RedisKit.Del(PassWordKey); - RedisKit.Del(checkCodeKey); + Redis.use().del(PassWordKey); + Redis.use().del(checkCodeKey); //防止用户攻击修改Cookie Map _map = new HashMap(); _map.put("identity_id", loginMap.get("identity_id")); diff --git a/ds-base/src/main/java/com/dsideal/base/Util/PkUtil.java b/ds-base/src/main/java/com/dsideal/base/Util/PkUtil.java index d9879335..0b96fb7a 100644 --- a/ds-base/src/main/java/com/dsideal/base/Util/PkUtil.java +++ b/ds-base/src/main/java/com/dsideal/base/Util/PkUtil.java @@ -2,6 +2,7 @@ package com.dsideal.base.Util; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; +import com.jfinal.plugin.redis.Redis; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -28,8 +29,8 @@ public class PkUtil { Record record = Db.findFirst(sql, identity_id); int identity_pk_num = record.getInt("identity_pk_num"); //初始化要删除掉 - RedisKit.Del(identityMap.get(key) + "_identity_pk_num"); - RedisKit.incrBy(identityMap.get(key) + "_identity_pk_num", identity_pk_num); + Redis.use().del(identityMap.get(key) + "_identity_pk_num"); + Redis.use().incrBy(identityMap.get(key) + "_identity_pk_num", identity_pk_num); log.info("初始化人员身份主键生成器成功:" + identityMap.get(key)); } } @@ -44,8 +45,8 @@ public class PkUtil { Record record = Db.findFirst(sql); int org_pk_num = record.getInt("org_pk_num"); //初始化要删除掉 - RedisKit.Del("org_pk_num"); - RedisKit.incrBy("org_pk_num", org_pk_num); + Redis.use().del("org_pk_num"); + Redis.use().incrBy("org_pk_num", org_pk_num); } /** @@ -73,7 +74,7 @@ public class PkUtil { */ public static long GetPersonNumPk(int identity_id, int count) { String redisPrefix = identityMap.get(identity_id); - return RedisKit.incrBy(redisPrefix + "_identity_pk_num", count); + return Redis.use().incrBy(redisPrefix + "_identity_pk_num", count); } /** @@ -82,6 +83,6 @@ public class PkUtil { * 时间:2018-11-22 */ public static long GetOrgNumPk(int count) { - return RedisKit.incrBy("org_pk_num", count); + return Redis.use().incrBy("org_pk_num", count); } } diff --git a/ds-base/src/main/java/com/dsideal/base/Util/RedisKit.java b/ds-base/src/main/java/com/dsideal/base/Util/RedisKit.java deleted file mode 100644 index 801d4e3a..00000000 --- a/ds-base/src/main/java/com/dsideal/base/Util/RedisKit.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.dsideal.base.Util; - -import com.jfinal.plugin.redis.Redis; -import redis.clients.jedis.Pipeline; -import redis.clients.jedis.resps.Tuple; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -public class RedisKit { - - public static String Get(String key) { - return Redis.use().call(jedis -> jedis.get(key)); - } - - public static void Set(String key, String value) { - Redis.use().call(jedis -> jedis.set(key, value)); - } - - public static void Expire(String key, long seconds) { - Redis.use().call(jedis -> jedis.expire(key, seconds)); - } - - public static boolean Exists(String key) { - if (Redis.use() != null) return Redis.use().call(jedis -> jedis.exists(key)); - return false; - } - - - public static void Del(String key) { - Redis.use().call(jedis -> jedis.del(key)); - } - - public static String HGet(String key, String field) { - return Redis.use().call(jedis -> jedis.hget(key, field)); - } - - - public static Map HGetAll(String key) { - return Redis.use().call(jedis -> jedis.hgetAll(key)); - } - - public static void HSet(String key, String field, String value) { - Redis.use().call(jedis -> jedis.hset(key, field, value)); - } - - - public static long incrBy(String key, int num) { - return Redis.use().call(jedis -> jedis.incrBy(key, num)); - } - - public static Pipeline getPipline() { - return Redis.use().getJedis().pipelined(); - } - - public static void SAdd(String key, String value) { - Redis.use().call(jedis -> jedis.sadd(key, value)); - } - - public static void SRem(String key, String value) { - Redis.use().call(jedis -> jedis.srem(key, value)); - } - - public static Set SMembers(String key) { - return Redis.use().call(jedis -> jedis.smembers(key)); - } - - public static List zrangeByScoreWithScores(String key, String start, String end) { - return Redis.use().call(jedis -> jedis.zrangeByScoreWithScores(key, start, end)); - } - - public static void zrem(String key, String value) { - Redis.use().call(jedis -> jedis.zrem(key, value)); - } - - public static void zadd(String key, double score, String value) { - Redis.use().call(jedis -> jedis.zadd(key, score, value)); - } - - public static long zcard(String key) { - return Redis.use().call(jedis -> jedis.zcard(key)); - } -} \ No newline at end of file diff --git a/ds-base/src/main/java/com/dsideal/base/Util/RedisUtil.java b/ds-base/src/main/java/com/dsideal/base/Util/RedisUtil.java deleted file mode 100644 index 9971edd2..00000000 --- a/ds-base/src/main/java/com/dsideal/base/Util/RedisUtil.java +++ /dev/null @@ -1,194 +0,0 @@ -package com.dsideal.base.Util; - -import com.jfinal.kit.LogKit; -import com.jfinal.kit.PropKit; -import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisPool; -import redis.clients.jedis.JedisPoolConfig; -import redis.clients.jedis.exceptions.JedisConnectionException; -import redis.clients.jedis.params.SetParams; - -import java.util.Collections; - -public final class RedisUtil { - //Redis服务器IP - private static String ADDR = PropKit.get("redis_ip"); - //Redis的端口号 - private static int PORT = PropKit.getInt("redis_port"); - - //可用连接实例的最大数目,默认值为8; - //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。 - private static int MAX_ACTIVE = -1; - - //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。 - private static int MAX_IDLE = 200; - - //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException; - private static int MAX_WAIT = 10000; - - private static int TIMEOUT = 10000; - - //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的; - private static boolean TEST_ON_BORROW = true; - - private static JedisPool jedisPool = null; - - /** - * 初始化Redis连接池 - */ - static { - try { - JedisPoolConfig config = new JedisPoolConfig(); - config.setMaxTotal(MAX_ACTIVE); - config.setMaxIdle(MAX_IDLE); - config.setMaxWaitMillis(MAX_WAIT); - config.setTestOnBorrow(TEST_ON_BORROW); - jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, null); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * 获取Jedis实例 - * - * @return - */ - public static Jedis getJedis() { - try { - if (jedisPool != null) { - Jedis resource = jedisPool.getResource(); - return resource; - } else { - return null; - } - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 释放jedis资源 - * - * @param jedis - */ - public static void returnResource(final Jedis jedis) { - if (jedis != null) { - jedisPool.returnResource(jedis); - } - } - - private static void close(Jedis jedis) { - try { - jedisPool.returnResource(jedis); - } catch (Exception e) { - if (jedis.isConnected()) { - jedis.disconnect(); - } - } - } - - /** - * 返回的是列表的剩余个数 - */ - public static long lpush(String key, String value) { - Jedis jedis = null; - long ret = 0; - try { - jedis = jedisPool.getResource(); - if (jedis == null) return ret; - ret = jedis.lpush(key, value); - } catch (Exception e) { - //释放redis对象 - jedisPool.returnBrokenResource(jedis); - } finally { - //返还到连接池 - close(jedis); - } - return ret; - } - - public static Long llen(String key) { - Jedis jedis = null; - try { - jedis = jedisPool.getResource(); - if (jedis == null) { - LogKit.error("get jedis failed."); - return -1L; - } - return jedis.llen(key); - } catch (JedisConnectionException e) { - //释放redis对象 - jedisPool.returnBrokenResource(jedis); - } finally { - //返还到连接池 - close(jedis); - } - return -1L; - } - - /** - * 获取队列数据 - * - * @param key 键名 - * @return - */ - public static String rpop(String key) { - Jedis jedis = null; - try { - jedis = jedisPool.getResource(); - if (jedis == null) { - LogKit.error("get jedis failed."); - return null; - } - return jedis.rpop(key); - } catch (JedisConnectionException e) { - //释放redis对象 - jedisPool.returnBrokenResource(jedis); - } finally { - //返还到连接池 - close(jedis); - } - return null; - } - - private static final String LOCK_SUCCESS = "OK"; - private static final Long RELEASE_SUCCESS = 1L; - - /** - * 尝试获取分布式锁 - * - * @param lockKey 锁 - * @param requestId 请求标识 - * @param expireTime 超期时间 - * @return 是否获取成功 - */ - public static boolean tryGetDistributedLock(String lockKey, String requestId, long expireTime) { - Jedis jedis = RedisUtil.getJedis(); - //设置的参数 - SetParams sp = new SetParams(); - sp.ex(expireTime);//过期时间 - sp.nx(); //key不存在时才set值 - String result = jedis.set(lockKey, requestId, sp); - RedisUtil.returnResource(jedis); - return LOCK_SUCCESS.equals(result); - } - - /** - * 释放分布式锁 - * - * @param lockKey 锁 - * @param requestId 请求标识 - * @return 是否释放成功 - */ - public static boolean releaseDistributedLock(String lockKey, String requestId) { - Jedis jedis = RedisUtil.getJedis(); - String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end"; - Object result = jedis.eval(script, Collections.singletonList(lockKey), Collections.singletonList(requestId)); - RedisUtil.returnResource(jedis); - if (RELEASE_SUCCESS.equals(result)) - return true; - return false; - } -} diff --git a/ds-build/src/main/java/build_ds_base.java b/ds-build/src/main/java/build_ds_base.java index 91f9139b..f33a7381 100644 --- a/ds-build/src/main/java/build_ds_base.java +++ b/ds-build/src/main/java/build_ds_base.java @@ -5,6 +5,5 @@ public class build_ds_base { //项目名称 String projectName = "ds-base"; PublishUtil.publish(projectName); - System.out.println("开始生成镜像"); } } diff --git a/ds-build/src/main/java/build_ds_gw.java b/ds-build/src/main/java/build_ds_gw.java index 3b6b4565..bf4c76d1 100644 --- a/ds-build/src/main/java/build_ds_gw.java +++ b/ds-build/src/main/java/build_ds_gw.java @@ -5,6 +5,5 @@ public class build_ds_gw { //项目名称 String projectName = "ds-gw"; PublishUtil.publish(projectName); - System.out.println("开始生成镜像"); } }