- 博客(57)
- 资源 (3)
- 收藏
- 关注
原创 监听事件解决循环依赖问题
最近在工作中遇到了代码中循环依赖的问题,记录下解决方案。1.问题原因这里涉及到两个类YgReplenishmentAppService(补货单处理)和YgPurchaseOrderAppService(采购单处理)我们看下类中的代码:@Slf4j@Servicepublic class YgReplenishmentAppService { private YgPurchaseOrderAppService ygPurchaseOrderAppService; private vo
2021-11-02 09:52:22
377
转载 MyBatis-plus对比MyBatis
原文链接:https://www.jianshu.com/p/8556c8468241MyBatis-plus是一款MyBatis的增强工具,在MyBatis 的基础上只做增强不做改变。其是国内团队苞米豆在MyBatis基础上开发的增强框架,扩展了一些功能,以提高效率。引入 Mybatis-Plus 不会对现有的 Mybatis 构架产生任何影响,而且 MyBatis-plus 支持所有 Mybatis 原生的特性1)依赖少:仅仅依赖 Mybatis 以及 Mybatis-Spring 。2)损耗小:
2021-10-15 13:31:07
939
原创 interceptor方式拦截请求进行权限验证和签名验证
外部应用调用我方接口时通常需要做安全校验,这里记录一种验签方式,基于interceptor实现。先看看接口的定义: @ApiOperation(value = "同步第三方商品数据") @PostMapping(value = "/sync") @ExternalAPI(sourceSystem = SourceSystemEnum.SUNAC) public ResponseHeaderVO<ThirdpartResponseSkuMappingVO> sync
2021-10-13 14:47:34
1539
原创 ideal中修改springboot启动参数
项目中的配置文件是存放在远程的,启动项目时需要去读取远程的配置文件,由于配置文件是共享的,所以不能随意更改他。一般是在本地配置一个application.yaml(或properties等)。只是这种不方便,万一手滑提交到git就不好了。IDEA中提供了在springboot项目启动时覆盖配置参数的功能:...
2021-09-27 16:49:36
1580
原创 mysql批量同步数据方案
场景今天写了两个接口,需要同步数据到数据库,通常是需要避免重复的,因此存在对相同数据的处理问题,一般有两种方按:(1)根据主键信息,插入数据库时判断数据是否已经存在,如果存在则更新,不存在则插入,需要在代码里面写逻辑;(2)通过数据库给定的特性来处理数据。这边博文记录下第(2)中方案的实现。技术选型springBoot+mybatis+mysql代码实现1.定义接口,调用插入方法。 @PostMapping(value = "/hrDeptCostCenterRelation",
2021-09-22 18:36:22
1018
翻译 常见设计模式解析汇总
1.工厂模式在 Spring 中我们一般是将 Bean 的实例化直接交给容器去管理的, 实现了使用和创建的分离, 这时容器直接管理对象, 还有种情况是, bean 的创建过程我们交给一个工厂去实现, 而 Spring 容器管理这个工厂。 Spring 使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象。 两者对比如下: BeanFactory: 延迟注入(使用到某个 bean 的时候才会注入) , 相比于ApplicationContext 来
2021-08-28 22:22:58
164
原创 idea中debug无法进断点
在网上找了很多发现都没用,因为之前报内存溢出错误所以在下面加了一行JAVA_OPTS,这时项目时能正常debug启动的,但是断点用不了。将这一行删掉再启动,断点就能正常使用了
2020-09-11 11:15:40
1666
原创 java.lang.OutOfMemoryError : GC overhead limit exceeded解决方案
在idea中设置:1、 File -> Settings -> Build,Execution,Deployment -> Complier 设置【Build process heap size(Mbytes)】 为 20002、File -> Settings -> Build,Execution,Deployment ->Build Tools -> Maven -> Importing 设置【VM options for importe
2020-09-09 14:03:01
481
转载 IDEA启动时CTATLINA_BASE显示的是C盘
因为我的idea安装的是在D盘的,但是启动的时候显示Using CATALINA_BASE:“C:/user/…”参考:idea启动是CTATLINA_BASE显示的是C盘这里面还有点问题,修改idea.properties文件时要修改三个地方:改完后重启即可...
2020-08-31 16:42:45
1561
2
原创 idea一直卡在build过程中
今天遇到项目启动时一直卡在build进程中解决办法:在Terminal中使用命令去编译mvn clean install -Dmaven.test.skip=true -P oracle(该命令适用于oracle)
2020-08-27 21:10:51
3535
1
原创 ORA-28547连接oracle数据库时报错的解决办法
报错的原因就是因为Navicat默认的OCI版本和你安装的ORACLE数据库所带的OCI版本不一致。所以解决方案很简单:找到自己安装的oracle对应的oci文件:C:\ORACLE\product\11.2.0\dbhome_1\BIN下的oci.dll然后替换navicat文件目录:C:\PremiumSoft\Navicat Premium\instantclient_10_2下的oci.dll然后重启navicat连接成功...
2020-08-24 18:54:57
933
转载 JVM内存结构
参考:https://blog.youkuaiyun.com/rongtaoup/article/details/89142396
2020-08-13 23:09:40
129
转载 Hystrix原理和使用
Hystrix整个工作流如下:构造一个 HystrixCommand或HystrixObservableCommand对象,用于封装请求,并在构造方法配置请求被执行需要的参数;执行命令,Hystrix提供了4种执行命令的方法,后面详述;判断是否使用缓存响应请求,若启用了缓存,且缓存可用,直接使用缓存响应请求。Hystrix支持请求缓存,但需要用户自定义启动;判断熔断器是否打开,如果打开,跳到第8步;判断线程池/队列/信号量是否已满,已满则跳到第8步;执行HystrixObservableComm
2020-08-07 16:40:02
222
转载 Eureka工作原理
Eureka 的工作流程:1、Eureka Server 启动成功,等待服务端注册。在启动过程中如果配置了集群,集群之间定时通过 Replicate 同步注册表,每个 Eureka Server 都存在独立完整的服务注册表信息2、Eureka Client 启动时根据配置的 Eureka Server 地址去注册中心注册服务3、Eureka Client 会每 30s 向 Eureka Server 发送一次心跳请求,证明客户端服务正常4、当 Eureka Server 90s 内没有收到 Eure
2020-08-07 15:57:53
139
转载 CAP和BASE理论
1. CAP理论2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。CAP理论为:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。1.1 一致性(Consistency)一致性指“all no
2020-08-07 08:49:23
156
原创 关于远程debug调试
因为很多项目彼此之间依赖比较多,本地无法启动,或者本地启动调试ok但放到远程服务器上部署后调试出错。这个时候需要做一下远程的debug查看问题方便。下面看看如何通过IDEA做远程的debug1.找到远程服务器的debug_portdebug_port一般是写在应用部署的bin目录中:bin目录下查看配置脚本,如我的:setDomainEnv.sh中就可以看到如下配置:if [ "${DEBUG_PORT}" = "" ] ; then DEBUG_PORT="8173"
2020-07-27 11:16:12
1206
1
原创 xxl-job分布式调度平台
1.任务调度?某一时间段进行任务的操作2.使用场景?是为了定时发送报表?数据同步?推送?3.作用,好处?传统实现定时任务的方式?Thread、TimeTask、ScheduleExecutorService、Quartz 等;这几种方式都是在单点系统使用,一旦Job服务器宕机之后,就必须采取一些措施;具体操作如下:(1):使用心跳检测监控自动重启、任务补偿机制(任务做标记)(2):定时任务在执行代码的时候中间突然报错,使用日志记录错误,跳过继续执行,在使用定时Job 扫描日志错误记录,进行补
2020-07-06 14:42:12
904
原创 日期工具类
DateUtil:public class DateUtil{ private static final String SDF_YMD_H = "yyyy-MM-dd HH:mm:ss"; private static final String SDF_YMD = "yyyy-MM-dd"; private static final String SDF_YM = "yyyy-MM"; private static final String SDF_Y = "yyyy"; private st
2020-06-24 15:01:15
144
原创 CSV文件生成方法
CSV文件导出工具类public class CSVUtil { public static File createCSVFile(List<Object> head,List<List<Object>> dataList,String outPutPath,String fileName){ File csvFile = null; BufferedWriter csvWriter = null; try{ csvFile = new File(o
2020-06-23 11:24:19
991
翻译 Java面试题汇总
这篇文章是因为将要跳槽,本人准备将一些比较常见的面试题汇总记录下来,也会持续地收录自己找到的有价值的、或者自己亲身经历的一些面试题,供大家参考。我将这些面试题分为1.Java基础篇:包含JDK、集合、多线程等一些常用的基础知识;2.Java框架篇:包括Sping全家桶、分布式框架(Doubbo、Zookeeper等)、持久层框架等等;3.数据库:包括MySql面试题和Redis非关系型数据...
2020-04-20 21:46:43
581
3
原创 bootstrap-table根据条件隐藏列
记录下bootstrap-table的一个回调函数,可以在刷新页面时修改table的列等信息,直接上代码:$("#myTable").on('load-success.bs.table',function(){ var flag = $("#flag").val(); if(){ $("#myTable").bootstrapTable("hideColumn","#"); }else...
2020-04-15 15:48:17
1220
原创 $ is not defined问题解决
$ is not defined ,有以下几种可能:1.没有导入jQuery的jar包2.jQuery的jar包放进了WEB-INF里,jQuery的jar包最好放在WebContent下,跟WEB-INF同级3.导入jQuery的路径名没有写对4.jQuery没有包含js总之就是因为jQuery没加载到你的页面,但是很多情况是你的上面列举的问题都是正确的,但是依然前台会报这种错误。很...
2020-04-15 15:32:10
9758
原创 ajax异步提交多参数的方式
今天来总结下ajax在请求后台传递多参数时我们如何传递以及后台如何接受参数的方法。老套路,我们先模拟一个场景:根据商品的属性名称和属性值来检索商品,可参考某宝或某东,当我们点击某一个商品的属性和属性值时,检索出符合条件的所有商品,这里涉及shxm_id(属性名id)和shxz_id(属性值id)这两类参数,难点在于用户可以同时选择多个属性名和属性值,我们的设计是这样的:用户每添加一组属性名和属性...
2020-04-08 21:15:51
1128
原创 mvc多重嵌套参数的提交和封装
项目中经常遇到需要提交多重集合参数的提交问题,今天分享下这样一个场景:前台页面提交多个商品的属性而每个属性又对应多个属性值。这就涉及多个嵌套对象的参数提交问题。下面我们来一步一步的分析这种参数的提交方式。首先我们有个属性对象T_MALL_ATTR :package com.cn.mall.bean;import java.util.Date;//属性Attrpublic class T...
2020-03-30 20:58:38
260
转载 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoader解决方案
解决方案:其实是你的jar文件没有同步发布到自己项目的lib目录中(如果是用Maven进行构建的话) 可以试试 下面的办法–rebuild下project就可以了项目点击右键 点击 Properties 选择Deployment Assembly 再点击右边的Add按钮 选择Java Build Path Entries后点击Next按钮 然后选择你的Maven Dependencies...
2020-03-30 15:51:55
1053
原创 SSM框架的搭建
工作中比较注重业务逻辑的实现很多东西有遗忘,今天重温下SSM框架是如何搭建的,包括思路解析,特此记录1.创建maven工程这里面有一个需要注意的点,就是在创建过程中会让我们Select an Archetype 如下所示:archetype的意思就是模板原型的意思,原型是一个Maven项目模板工具包。一个原型被定义为从其中相同类型的所有其它事情是由一个原始图案或模型。名称配合,因为我们正在努...
2020-03-12 16:11:34
307
原创 SpringBoot整合Redis
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。1、安装redis;2、引入redis的starter <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte...
2019-11-25 20:58:06
169
原创 Redis操作命令合集
1.Redis对于key的操作命令del key1 key2 … keyn作用:删除一个或多个key返回值:不存在的key忽略掉,返回真正删除的key的数量rename key newkey作用:给key赋值一个新的键名注:如果newkey已经存在,则newkey的原值会被覆盖renamenx key newkey作用:将key的名字改为newkey注:nx–>not ex...
2019-11-14 11:06:31
192
原创 SpringBoot缓存配置原理
1、自动配置类;CacheAutoConfiguration自动配置类是springboot的组件加载机制中的常见类,CacheAutoConfiguration类中关键定义了导入缓存相关的配置组件@Import({CacheAutoConfiguration.CacheConfigurationImportSelector.class, CacheAutoConfiguration.Cach...
2019-11-12 20:24:24
463
原创 Calendar 遍历日期
在项目中遇到一种场景,要求一段时间内的每一天的数据都查出10条,这就需要遍历日期,取得每一天的日期值。直接上代码:String beginDate = "2019-01-01";String endDate = "2019-01-31";SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");Date d1 = forma...
2019-10-09 14:00:21
980
原创 Spring配置Bean的方式
Spring配置Bean的形式有两种1.基于XML的形式1.在XML文件中通过Bean节点配置Bean,这中形式在前一篇博文中已详细描述过,这里不做赘述。需要注意的是SpringIOC容器在读取Bean配置并创建Bean实例之前必须要对它进行实例化,只有在容器实例化之后才能在IOC容器中获取Bean实例并使用它。2.Spring提供了两种类型的IOC容器实现(1)BeanFactory:...
2019-10-05 11:33:05
306
原创 从HelloWorld看Spring的基本原理
之前没有记录spring的相关学习笔记,打算现在开始补充这部分内容。今天就来分享下HelloWorld中的Spring的基本用法。下面先来看我们写的HelloWorld类:1.HelloWorld的基本语法public class HelloWorld { private String name; public void setName2(String name) { thi...
2019-09-27 15:46:44
164
MyBlog.zip
2019-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人