- 博客(185)
- 资源 (1)
- 收藏
- 关注

原创 Spring Cloud 微服务架构图
Spring Cloud 微服务总体架构图上面图中技术名词理解:1、Sleuth-链路跟踪为服务之间调用提供链路追踪。通过Sleuth可以很清楚的了解到一个服务请求经过了哪些服务,每个服务处理花费了多长。从而让我们可以很方便的理清各微服务间的调用关系。2、断路器(Hystrix)在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调...
2018-08-15 11:32:43
77281
8
原创 maven 工具 clean、compile、package、install、deploy 常用命令使用区别
这些命令是 Maven 生命周期中的关键阶段,通过组合使用这些命令,您可以有效地管理项目的构建、测试和发布过程。
2024-11-27 09:41:08
931
原创 maven <scope>import</scope>配置作用
import 是 Maven 中一个特殊的作用范围,仅在 部分使用。它的主要用途是从其他 POM 文件中导入依赖管理配置。这种机制允许您在一个中心位置定义和维护依赖项的版本和其他配置,然后在多个项目或模块中引用这些配置。
2024-11-26 20:06:02
1411
原创 maven <scope>compile</scope>作用
在 Maven 项目中, 元素用于定义依赖项的作用范围。元素可以有多个值,每个值表示不同的作用范围。
2024-11-26 20:02:17
1708
原创 maven 中<packaging>pom</packaging>配置使用
但是,当您设置 pom 时,这意味着该项目是一个 POM(Project Object Model)项目。pom 的含义。
2024-11-26 19:35:04
1029
原创 JWT认证和Session认证区别
在现代企业软件架构中,确实越来越多的应用倾向于使用 JWT(JSON Web Token)来进行登录认证,而不是传统的基于会话(Session)的认证方式。这主要是因为 JWT 具有一些显著的优势,特别是在处理分布式系统和无状态服务时。然而,每种方法都有其适用的场景和优缺点。
2024-11-21 18:24:39
307
原创 jjwt中存储token令牌,浏览器操作了登出清除了浏览器的cookie,那么这个token是否还继续存储在jjwt中,还依然存在?使用postman的方式,是不是还是能通过认证
客户端清除:登出时清除客户端的 JWT 令牌,但服务器不会主动跟踪每个客户端的令牌状态。Postman 测试:使用 Postman 仍然可以通过相同的 JWT 令牌进行身份验证,除非令牌已过期或在黑名单中。解决方案:设置较短的过期时间、使用黑名单或刷新令牌机制来提高安全性。
2024-11-21 18:20:39
406
原创 java SQL中使用for update作用和用法
在 Java 开发中,使用 FOR UPDATE 子句的 SQL 查询主要用于实现行级锁定,以确保在事务处理过程中数据的一致性和完整性。FOR UPDATE 会锁定查询结果集中涉及的行,防止其他事务在同一时间内对这些行进行修改或删除。这在并发环境中特别有用,可以避免数据竞争和不一致的问题。FOR UPDATE 通常与事务一起使用。锁定会在事务提交或回滚时释放。这意味着在事务结束之前,其他事务不能修改这些被锁定的行。
2024-11-21 17:02:43
526
原创 jackson序列化反序列化报错处理
Jackson 默认支持多种基本数据类型和复杂数据类型的序列化和反序列化。例如常见的布尔类型、字符串类型、集合、数组、枚举等,但某些特定类型(如 Java 8 的 LocalDateTime、LocalDate、LocalTime 等)需要额外的模块支持。
2024-11-21 00:12:27
426
原创 Spring Boot 应用程序中集成 Redis 并实现存储读取字符串或者复杂对象
【代码】Spring Boot 应用程序中集成 Redis 并实现存储读取字符串或者复杂对象。
2024-11-14 18:27:46
486
原创 spring @Qualifier 注解解决依赖注入时类型相同但名称不同的 bean问题
Override@Override@Qualifier 注解在 Spring 框架中用于解决依赖注入时的歧义问题。通过指定 bean 的名称,@Qualifier 注解可以帮助 Spring 容器确定应该注入哪个 bean。这对于处理多个相同类型的 bean 特别有用,确保了代码的清晰性和可维护性。
2024-11-14 17:08:08
464
原创 PG数据库 数据库时间字段 开始时间和结束时间,判断和查询条件的开始和截止时间存在交集,SQL如何编写
假设你的表名是 events,开始时间字段为 start_time,结束时间字段为 end_time,而你要检查的时间段是 query_start_time 和 query_end_time。在 PostgreSQL 中,如果你想要查询那些时间段(由 开始时间 和 结束时间 定义)与给定的时间段有交集的记录,可以使用 SQL 的时间范围类型或者简单的条件语句来实现。PG 数据库时间字段 开始时间和结束时间,判断和查询条件的开始和截止时间存在交集,SQL如何编写?使用 BETWEEN 和逻辑运算符。
2024-11-12 12:32:57
578
原创 PG数据库 jsonb字段 模糊查询
4、其中pmsProductName是页面传递的值,zh-CN和en分别表示对应的中英文key。项目由于多语言的设计,将字段设置成json字段类型,同时存储中文和英文。,前者可以正常查询出来,后者发现查询不出结果,一定注意!按照对应的value实现模糊查询,特别注意一下sql中。一、表结构:name字段设置jsonb类型。页面上通过输入框实现模糊的查询。3、Mybatis编写sql。
2024-11-01 14:37:49
593
原创 Mybatis-Plus中 updateById 无法将已有值的字段更新为 null
在 MyBatis-Plus 中,使用updateById,null字段并不会更新,其实是和更新的策略有关,当然,也有插入策略。(会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为null)
2024-10-30 15:59:53
649
原创 java List对象集合中 如何根据集合中对象某几个属性组合去重
利用Java 8的Stream API,可以简化代码。你可以创建一个自定义类,并为这个类实现equals()和hashCode()方法。然后使用HashSet来存储这些对象,因为HashSet不允许重复元素。这里,键是属性组合的字符串表示形式,而值则是MyClass对象本身。请注意这种方法可能不会保持元素的原始顺序。如果需要根据特定属性去重,可以使用distinct()结合Comparator或更复杂的逻辑。
2024-10-25 12:52:24
2202
1
原创 多个属性组成的对象作为Map集合的唯一key,自动实现数据的分组统计
项目有需求,在解析文件的时候,需要按照某几个字段作为唯一值,统计对应的总费用是多少,那么需要用到Map集合,Key使用这几个字段组成的对象,value就是对应的费用。通过上述处理,就实现了将几个属性作为key对象,自动实现对应的费用总值的累加,帮我们自动拼装成Map集合!
2024-10-16 12:53:05
157
原创 java遍历树状结构对象,父类和所有子节点,拼装成一个整体List集合
【代码】java遍历树状结构对象,父类和所有子节点,拼装成一个整体List集合。
2024-09-22 22:58:58
212
原创 SpringBoot 中使用 Swagger2 出现 whitelabel page error 解决方法
其他弄好后,访问 http://localhost:8080/swagger-ui.html 出现如题错误。访问: http://localhost:8080/swagger-ui/亲测好用 不用像之前旧的swagger版本访问.html结尾的文件!今天使用Swagger最新版,在pom.xml引入。替换pom.xml内容为。注意最后的斜杠/不能少。
2023-04-12 00:07:28
2389
2
原创 java 集合中对象 按照多个属性正序倒序同时排序排列
realCloudProviderAccountGroupDtos 是逻辑处理上的集合想分别按照code 和scope两个属性,同时倒序排列,增加reversed(),去掉表示正序排列realCloudProviderAccountGroupDtos = realCloudProviderAccountGroupDtos.stream() .sorted(Comparator.comparing(CloudProviderAccountGroupDto::getCode).rev
2022-04-19 12:33:43
3305
1
原创 mybatis 中完整输出SQL日志
1、使用插件idea 中的插件mabatis log2、services中直接运行这个插件3、idea项目重启,调用接口,查看mybatis log 日志
2022-03-24 17:18:50
1447
原创 doris数据库中字段是变量 去掉单引号问题
doris支持mysql的协议,在使用mybaits连接doris数据库时,为了考虑方法的兼容性,数据库表的字段是动态拼接的,在其他数据库中没问题但是再doris会出错,那么如何去掉字段中自动增加的’单引号呢?mapper.xml传输接收参数时,#号改成$符号就可以实现!代码实例中 <foreach item="value" collection="filters" index=""> and #{value.attributeKey}
2022-03-24 17:03:35
1527
原创 SpringBoot 配置篇 - 加载指定YML文件配置信息
项目需要指定特定的yml文件名称,不是默认的application.yml,那么需要如何配置呢?在之前学习的@PropertySource 读取指定配置文件的文章中我们了解到使用PropertySource可以指定配置文件类去加载指定的properties文件,关于properties的配置可以参考一下这篇文章,本文将讲述yml的踩坑过程。首先我创建了classpath:security-whitelist.yml@PropertySource(value = {"classpath:securit
2022-02-24 11:11:58
4476
原创 idea springboot项目启动图标没了 idea右上角run消失
把Navigation Bar 勾选上 (下图是idea2021位置 旧版本直接在View下面就可以找到了)
2022-02-18 14:54:10
3449
1
原创 Docker 安装和卸载详细步骤
一、Docker的安装查看系统的内核:uname -r系统内核版本为3.10.0[root@iZwz99sm8v95sckz8bd2c4Z ~]# uname -r3.10.0-957.21.3.el7.x86_64查看系统配置cat /etc/os-release[root@iZwz99sm8v95sckz8bd2c4Z ~]# cat /etc/os-releaseNAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="
2022-01-10 22:50:30
4462
原创 Centos7以上开放指定端口命令
Centos开放指定端口命令1、开启防火墙systemctl start firewalld2、开放指定端口firewall-cmd --zone=public --add-port=6666/tcp --permanent--add-port=portid[-portid]/protocol命令含义:--zone #作用域--add-port=6666/tcp #添加端口,格式为:端口/通讯协议--permanent #永久生效,没有此参数重启后失效3、重启防火墙firewal
2022-01-05 23:17:36
13502
原创 PgSQL upsert批量查询插入或更新(insert select/on conflict do update踩坑记录)
PGSQL数据库中根据唯一索引判断存在不存在,存在则更新,不存在就新增,可以参考下的sql,注意其中的item_type,item_type_id,item_group,item_group_key四个字段组成唯一的联合主键,没有这样的联合主键,就会报"there is no unique or exclusion constraint matching the ON CONFLICT specification"错误!mapper:long saveAA(@Param("param") CreateC
2021-12-06 20:56:27
4674
原创 vscode 清理删除的分支
很多远程分支可能已经删除掉了,但是在vscode中还会继续缓存这些分支,如何删除掉了,下面的命令是批量删除这类分支:git fetch --prune
2021-12-06 13:49:46
4651
原创 java BigDecimal 加减乘除运算
注意除法运算,分母为0的问题,还有就是除法后保留几位小数点的问题 //两个flot相加 public float twoFloatAdd(float a, float b) { BigDecimal a1 = new BigDecimal(Float.toString(a)); BigDecimal b1 = new BigDecimal(Float.toString(b)); Float add = a1.add(b1).floatValue()
2021-11-29 15:14:51
1180
原创 BigDecimal 四舍五入保留两位小数
/** * 保留小数点后两位,直接转成String,一般用于前端直接显示 * * @param value * @return */ public static String keep2DecimalPlaces(float value) { BigDecimal b1 = new BigDecimal(value); return b1.setScale(2, BigDecimal.ROUND_HALF_UP).t.
2021-11-28 16:05:29
13380
1
原创 Java8 findAny和findFirst的区别
List<String> lst1 = Arrays.asList("Jhonny", "David", "Jack", "Duke", "Jill","Dany","Julia","Jenish","Divya");List<String> lst2 = Arrays.asList("Jhonny", "David", "Jack", "Duke", "Jill","Dany","Julia","Jenish","Divya"); Optional<String>
2021-11-28 13:52:51
689
原创 mybatisplus LambdaQueryWrapper 多条件拼接成and查询
LambdaQueryWrapper<SysTest> query = new LambdaQueryWrapper<>(); query.eq(SysTest::getDiscountType, 1); query.and(q -> { q.le(SysTest::getStartMonth, (Integer)(beginMonth)).or(wrapper -> wrapper.ge(SysTest::getEndMonth
2021-11-16 18:40:07
6251
原创 vscode 左侧工具栏显示
1.显示工具栏点击文件,选择首选项,点击设置按钮搜索workbench,勾选上Workbench> Activity Bar:Visble勾选上后,工具栏就显示出来了
2021-11-05 15:04:56
14940
Tomcat安装SSL证书步骤.txt
2020-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人