- 博客(45)
- 收藏
- 关注
原创 项目打包没问题但是启动报ClassNotFoundException
因此,如果A应用需要使用C应用中的类,而B应用将C应用的依赖范围设置为了provided,那么在A应用的运行环境中,如果没有手动提供C应用的JAR文件,A应用就会因为找不到C应用中的类而抛出ClassNotFoundException。即使B应用将C应用的依赖范围设为provided,A应用也可以在其POM中显式添加C应用的依赖,这样可以确保C应用的依赖在A应用的构建过程中被正确包含。
2024-07-30 08:45:00
582
原创 踩坑系列——mysql数据库字段类型为tinyint输入字符串条件查询无效
mysql数据库字段类型为tinyint输入字符串条件查询无效,MySQL会尝试将这个字符串转换为整数来进行比较,结果可能非预期
2024-02-02 08:00:00
844
原创 踩坑系列——PageHelper分页参数未清除导致其他查询报错
踩坑PageHelper分页查询使用不当导致其他无需分页的查询被加上了分页参数报错
2023-09-04 08:00:00
863
原创 高并发场景加锁方式及存在的问题
在多线程高并发场景下,为了保证共享资源的正确性,通常会采用加锁的方式。关于加锁以及一些相关的问题,这里根据个人学习了解的做个汇总。
2023-08-28 08:15:00
1408
原创 如何保证数据库的数据和Redis的数据一致性
实际项目中有可能会使用Redis缓存数据,那么在更新数据的时候如何保证数据库中的数据和Redis缓存的数据一致,缓存同步策略的选择是一个很重要的问题。网上有各种说法,大概总结有以下几种,看看每种方案是否可行以及存在的问题和适用场景。
2023-08-14 08:30:00
1103
原创 Spring中的全局异常处理
2、@ExceptionHandler(Throwable.class),因为Throwable是所有异常的父类,这里配置Throwable来拦截所有的异常,也可以指定其他异常类型,如@ExceptionHandler(IllegalArgumentException.class),则此方法处理IllegalArgumentException 类型的异常,如果参数为空,默认方法参数列表中列出的任何异常。1、@ControllerAdvice,没有配置具体的拦截规则,默认拦截处理所有的controller。
2023-08-06 18:30:00
843
原创 通过WEB页面上传文件并调用第三方feign接口处理上传实现
在A应用里面提供web接口给前端接收上传的文件,然后A应用再通过feign接口调用B应用,将文件进行传输,B应用真正处理文件上传到服务器,同时上传文件时除了文件参数还有其他额外的参数。(1)feign接口多个参数必须加上consumes = MediaType.MULTIPART_FORM_DATA_VALUE,而且对应的file要用@RequestPart。(2)@RequestPart(“file”),这里的“file”定义接口调用方和提供方必须一致。(3)feign实现文件上传还需要引入依赖。
2023-06-29 08:30:00
449
原创 Class.forName和ClassLoader.loadClass的区别
在Java中,类加载器把一个类装入Java虚拟机中,要经过三步来完成:加载、连接和初始化,其中连接又分为验证、准备和解析三个阶段。加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段可以在初始化阶段之后发生,也称为动态绑定或晚期绑定。加载:查找和导入类或接口的二进制数据;连接:又可以分成校验、准备和解析三步,其中解析步骤是可以选择的;验证:检查导入类或接口的二进制数据的正确性;准备:给类的静态变量分配并初始化存储空间;解析:将符号引用转成直接引用;
2022-10-07 09:30:00
957
原创 在Spring项目启动时处理事情的几种实现方式
在Spring里面有一套完整的事件处理机制,容器启动过程中各节点会有对应的事件,如果要在初始化时做一些事情,可以实现ApplicationListener接口接收相应的事件,实现onApplicationEvent方法,在容器将所有的 Bean 都初始化完成之后,就会执行该方法。stop(Runnable):容器关闭后,spring 容器发现当前对象实现了 SmartLifecycle,就调用 stop(Runnable), 如果只是实现了 Lifecycle,就调用 stop()。
2022-08-21 22:21:58
677
1
原创 JDK动态代理和CGLIB动态代理
在SpringAOP中基于动态代理实现功能的增强,也就是动态的生成代理类,在代理类中织入增强的逻辑然后调用目标对象的方法。动态代理中用的比较多的两种:JDK动态代理、CGLIB动态代理。JDK动态代理使用JDK的java.lang.reflect.Proxy类的newProxyInstance方法实现的代理。用一个测试接口看下具体实现:public interface JdkProxyDemoService { void queryTrs();}@Servicepublic
2022-05-30 10:00:00
8415
原创 postman循环调用同一个接口
最近遇到这样一个场景:页面取消单据只支持单个单据,但是现在有一批单据需要取消,直接执行sql更新单据状态需要同时更新关联的所有上下游单据,太麻烦了,而使用postman可以实现循环调用接口来模拟页面调用操作批量单据。操作如下:1. Collections里面新建一个collection,如【测试循环调用接口】2. collection中添加需要调用的接口,如【取消单个订单接口】。注意这个接口里面的请求参数需要写成变量形式的{{}},变量名随便起,我这里变量名分别为id,reason{ “id”:“
2022-05-13 14:43:25
11729
4
原创 mybatis指定数据源新增查询数据
近期遇到特殊场景需要指定数据源进行数据新增查询操作。代码如下:/** * 数据源配置 * * @author lyc * @date 2022/03/10 */@Componentpublic class TempDbSource { //数据库连接相关配置 说明:项目中使用的Druid数据源所以需要这些配置信息 @Value("${lyc.datasource.url}") private String url; @Value("${lyc.datasource
2022-03-11 00:15:51
2975
原创 删除excel中复制网页带过来的下拉框、复选框、单选框
复制网页表格时将输入框和下拉框都带过来了,删除没有用。解决办法2007版的excel操作步骤:开发工具——>设计模式——>选中要删除的下拉框——>delete复选框、单选框是一样的操作没有“开发工具”这个选项卡的需要先添加:文件——>选项——>自定义功能区——>勾选开发工具(在主选项卡下面)——>确定...
2021-09-01 19:45:16
10131
1
原创 java8之lambda表达式的23种使用总结
package com.lyc.collections;import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Data;import lombok.NoArgsConstructor;import java.io.Serializable;import java.math.BigDecimal;import java.util.ArrayList;import java.util.Arrays;impo
2021-08-12 23:26:05
281
原创 踩坑系列—mybatis查询报错java.lang.IndexOutOfBoundsException
sql单独执行正确,但是mybatis查询报错,部分错误信息如下:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:###Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index: 6, Size: 6###The error may
2021-06-22 20:22:36
5696
2
原创 IntelliJ IDEA编译报错— Error:java: 无效的目标发行版: 9
导入外部项目,测试lambda表达式编译报错:解决:File—>Settings—>Build,Execution,Deployment—>Compiler—>Java Compiler—>Target bytecode version改成8
2021-05-27 15:49:04
297
原创 IntelliJ IDEA编译报错— Error:java: 无效的源发行版: 9
导入外部项目,测试lambd表达式运行报错:解决:(1)File—>Project Structure—>Project—>Project language level改成8(2)File—>Project Structure—>Project—>Modules—>sources改成8
2021-05-27 15:43:49
130
原创 字符串特殊字符全角半角转换
String sourceFileName = "\\/:*?\"<>|.你好!"; System.out.println("source value=====>" + sourceFileName); //字符串转全角 String tmp = ""; for (int i = 0; i < sourceFileName.length(); i++) { if (sourceFileName.charAt(i) == 32) { .
2021-05-11 19:47:37
351
原创 踩坑系列—ORA-00932: 数据类型不一致
数据库为Oracle,拼接的sql使用hibernate查询的时候报错:java.sql.SQLException: ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BINARY部分代码如下:String sql =“select * from table where whId= :whId”;SQLQuery query = createSQLQuery(sql);query.setParameter(“whId”, queryParam.getWhId());quer
2021-05-11 19:37:37
4537
原创 踩坑系列—SqlServer批量新增BigDecimal精度问题
场景:SqlServer数据库表A有个字段column1类型为decimal(12,5),javaBean对应的BigDecimal,批量新增数据。执行insert前打印了数据,column1对应的值都是正常的,但是执行insert后,表中column1的值有些正确有些不正确。分析:因为一开始只是发现了个别数据应该是2位小数结果被四舍五入保留了1位小数,就以为是哪里出了问题被统一设置了保留1位小数,但是看了代码和数据库精度都没有特殊设置,而且打印出的数据也是正常的,肯定是在新增数据库这一步出了问题。
2020-09-09 19:22:37
2220
原创 mysql几个常用操作汇总
工作中mysql的几个常用操作汇总,做个备份。1、增加一列ALTER table tableName add column columnName varchar(10) DEFAULT 0 COMMENT ‘备注1’;2、增加多列(同一个表增加多列)ALTER table tableName add column columnName varchar(10) DEFAULT 0 COMME...
2020-03-10 22:16:55
148
原创 自定义注解利用反射记录日志
场景:项目中有一个供应商模块,包含供应商的基础信息、供应商资质等,字段比较多,其中有些信息比较重要,如果修改了需要记录修改日志(如哪个信息从什么改为什么),同时还需要重新提交,而有些信息修改了值需要记下日志,并不需要重新审核,还有一些无关紧要的信息修改了无需记录日志,也不需要审核最开始项目中记录日志只针对三四个关键字段,比较简单,直接用待更新的base获取指定字段值与数据库中这个字段的原始值比...
2019-11-16 00:30:23
739
原创 踩坑系列--mysql查询错误
mysql多表关联查询报了下面的错误:Column ‘merchant_code’ in where clause is ambiguous这是因为关联查询的多个表都有同一个字段名,需要加上表限定如:select a.name from table a,table b where a.ref_id=b.id and b.name=‘XXX’...
2019-10-11 14:16:34
297
原创 Python课程学习——元组
元组和列表类似,同一个元组中可以没有数据,也可以有多种数据区别:(1)定义方式不一样,列表使用[],元组使用()(2)元组中的元素不能改变,一旦创建就不能再对其中的元素进行增、删、改操作,只能访问注意:(1)如果元组只有一个元素,那么这个元素后面要加逗号,如tuple2,否则将被认为是一个基本数据类型而不是元组(2)创建元组可以没有括号,元素之间用逗号隔开#1、创建元组 同一个元组...
2019-09-26 18:21:40
222
原创 Python课程学习笔记——列表操作
#1、创建列表同一个列表中可以存放任意基本数据类型a=0.13list1=[];list2=[1,1.1,‘1.1.2’,1+a];list3=[1,2,3,4];list4=[“a”,“b”,“c”,“d”];#2、通过索引下标访问列表元素一次访问一个元素print(“list2[2]:”,list2[2]);print(“list3[2]:”,list3[2]);prin...
2019-09-26 16:52:21
731
原创 Python课程学习笔记——字符串操作
str1 = “Hello,world!”#1、访问字符串中的单个字符或者子串print(‘1.1) \t str1:’,str1)print(‘1.2) \t str1[0]:’,str1[0])print(‘1.3) \t str1[0:4]:’,str1[0:5])print(‘1.4) \t str1[5:9]:’,str1[6:11])#包含开头不包含结束##########...
2019-09-26 15:55:12
582
原创 踩坑系列——mysql查询使用group_concat()结果被截断问题
背景:有这样一个数据表,存放缺货任务,缺货任务有处理状态(如待反馈,已反馈),而已反馈处理状态又分为多个处理进度(如谈判中、指定渠道、无货),每一条缺货任务记录就是一个产品,而产品对应的有类目属性,现在需要统计每个分类,各个处理状态的条数,以及...
2019-04-25 15:49:57
4425
2
原创 Python课程学习笔记2—eclipse设置python文件编码
昨天的环境搭建后,创建了第一个项目HelloWorld,但是运行报了错,如下:网上查资料,这是编码格式出现了问题。解决方案1:在代码首行加上: # -- coding: utf-8 --解决的。或者加# coding=UTF-8也可以。注意:一定是文件的第一行。期间我把# -*- coding: UTF-8 -*放在文件头的版权注释信息下面还是一样的报错,放在文件第一行才可以。但是这...
2019-02-20 19:11:37
217
原创 Python课程学习笔记1—环境搭建
1. 安装eclipseeclipse官网:https://www.eclipse.org/downloads/packages/ 下载即可。学习的课程选用的版本是这个:下载完后,解压eclipse压缩文件,window直接双击eclipse.exe文件即可。在 Mac OS 上则有所不同,需要双击 .dmg 文件安装。在第一次运行时,会要求输入工作路径,可以自定义也可以接受默认路径。如...
2019-02-20 18:48:34
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人