![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开发经验
文章平均质量分 81
runlion_123
这个作者很懒,什么都没留下…
展开
-
ide插件MyBatisCodeHelper-Pro
作者李俊杰介绍视频: https://www.bilibili.com/video/av50632948功能通过方法名(不需要方法的返回值和参数 会自动推导出来)来生成sql 可以生成大部分单表操作的sql 只需要一个方法的名字即可 会自动补全好方法的参数和返回值 和springdatajpa的语句基本一致xml sql几乎所有地方都有自动提示,sql正确性检测,插件会识别mybatis的一系列标签 如 include trim set where,在这些标签之后的sql可以自动提示数据库的字段,原创 2021-02-02 17:29:29 · 1365 阅读 · 0 评论 -
任务调度框架Quartz
作者李林成1.什么是quartz作业任务调度Quartz框架是一个全功能,开源的任务调度服务,可以集成几乎任务java应用程序,从小的单片机系统到大型的电子商务系统。Quartz可以执行上千上万的任务调度2.Quartz中使用的几种设计模式Builer模式Factory模式组件模式链式写法3.三个主要的概念任务:就是我们自己编写的业务开发逻辑,交个Quartz帮我们执行。触发器: 定时任务的触发规则(触发器),定义了任务调度的触发时机,使用TriggerBuilder 构建,与任务是N原创 2021-02-02 17:14:40 · 1000 阅读 · 0 评论 -
微服务中的Nacos
作者徐贵浩推荐理由作为nacos配置中心和注册中心的入门介绍文章完全合格,如何简单部署和应用步骤一目了然,比较到位在讲 Nacos 之前,我们需要了解什么是 Nacos:Nacos 是阿里的一个开源产品,它是针对微服务架构中的 服务发现、配置管理、服务治理 的综合性解决方案。官网给出的回答:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Na原创 2020-11-17 11:01:18 · 949 阅读 · 0 评论 -
myexcel初步使用
作者吴华辉推荐理由因为招投标需求对比单导出结构复杂,引入了myexcel工具实现自定义导出,文章介绍了单元格合并,颜色标记,数据遍历的语法供大家参考。原因一些复杂格式的excel不适用于通用的表格工具导出,根据其他项目组的推荐使用了myexcel工具包使用github地址:https://github.com/liaochong/myexcel依赖添加#Maven<dependency><groupId>com.github.liaochong</g原创 2020-11-17 10:54:58 · 2581 阅读 · 0 评论 -
GC原理简述
GC原理简述什么是垃圾没有任何引用指向的一个对象,或者只是循环引用没有外部引用的多个对象。如何定位垃圾reference count (引用计数)每次被引用计数器就+1,释放的时候计数器-1 。root searching (根可达)定义某些根对象,只要根对象指向的对象那么就不是垃圾,其它的对象都是垃圾。JAVA用的就是根可达算法,JAVA定义的根有一下几类:常见的回收算法Mark Sweep (标记清除)处理方式:标记垃圾,然后直接回收。优缺点:速度快,原创 2020-11-17 10:40:04 · 1928 阅读 · 11 评论 -
Sql优化
作者环保项目组 王春明推荐理由:作为mysql优化的入门资料非常合适,不仅总结了索引的大部分用法和优化方式,更整理了一些mysql自带的命令,对sql分析和定位问题有一定帮助。1.查看Sql执行频率2.定位低效率执行sql在这里插入图片描述3.explain分析执行计划3.1 explain之id3.2 explain之select_type3.3 explain之table3.4 explain之type3.5 explain之key3.6 explain之rows原创 2020-09-17 17:08:22 · 258 阅读 · 0 评论 -
Modbus协议简介及Java代码取值实现
作者胡盛生推荐理由modbus协议概念特点以及java实现的整理,对于入门有一定的参考意义。Modbus协议简介Modbus是一种通讯协议,主要应用于电子控制器上的一种通用语言。Modbus支持多种电气接口,如RS232、RS485、TCP/IP等。多数Modbus设备通信是通过串口或TCP/IP进行连接。通常情况下 Modbus是主从架构,即通信节点是Master,其它使用Modbus协议参与通信的是slave节点(最多247个,地址范围为1-247,0节点是广播地址)。每个slave设备都具原创 2020-09-17 16:47:17 · 4853 阅读 · 4 评论 -
Mapping Example 高级用法
作者MRO项目组 吴华辉通用 Mapper 中的 Example 方法有两大类定义,一个参数和两个参数的,例如下面两个:所有 Example 方法中的 example 类型都是 Object 类型,这是因为通用 Mapper 支持所有符合 Example 结构的参数,例如通过 MBG 生成的 CountryExample、UserExample 类。还有通用 Mapper 中提供的通用 Example,以及支持 Java8 方法引用的 Weekend 类型。配置中有一个和 Example 有关的参原创 2020-09-17 16:35:44 · 818 阅读 · 0 评论 -
PaddleOCR安装、部署、测试
github地址:https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/installation.md官方建议我们使用使用docker运行PaddleOCR,可以省去很多麻烦。所以,我们可以再服务器上先安装docker、nvidia-docker,感觉没必要用到gpu,所以接下来就不使用nvidia-docker了。1.准备好docker环境2.cd /home && mkdir Projects首次运原创 2020-09-17 16:22:34 · 12241 阅读 · 10 评论 -
lambda表达式
作者推荐理由lambda表达式可以提高编程效率,精简代码;但与此同时会带来一些代码可读性下降的问题,因此需要熟悉lambda表达式,本文对其基本用法进行了一些总结,虽有不少遗漏之处,对初接触lambda表达式具有一定价值1.lambda表达式用来代替匿名内部类2.语法精简3.语法进阶静态方法引用:构造方法引用:3.应用集合排序:有序集合treeSet:删除集合元素4.系统内置的一些函数式接口5lambda表达式与stream流混合使用去重List distinctLi原创 2020-08-11 11:32:29 · 345 阅读 · 0 评论 -
SpringBoot自动装配特性的深入浅出
作者樊远航推荐理由spring boot核心能力之自动装配的原理分析,讲解了自己实现自动装配的两种方式,并提供流程图让读者更好理解,排版规整。前言SpringBoot作为敏捷开发的常用封装框架,对于企业开发速度的提升、配置的简化、业务的专注三个方面进行了相对于SpringMVC等架构的升级。那么,作为使用过SpringMVC的开发同学来说,初次使用SpringBoot时会感觉原本繁杂的xml配置工作一下子没有了。项目创建完成后,基本可以直接开始进行业务代码的编写(引入依赖除外)。那么,原本繁杂的原创 2020-08-11 10:48:28 · 441 阅读 · 0 评论 -
ReentrantLock源码分析
作者ERP组 陈 靖推荐理由该篇文章初步简要的写出了加锁和解锁的流程及原理,感兴趣的后来者可以通过该篇文章快速的了解加锁和解锁简要流程及原理。1 锁的各种类型1.1公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。多个非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序。非公平锁的优点在于吞吐量比公平锁大。我们常用的synchronized就是一种非公平锁,而ReentrantLock则可以通过构造方法来指定是否公平锁。1.2可重入锁可重入锁是指,外层方法获取锁后,进入内层原创 2020-08-11 10:32:43 · 271 阅读 · 0 评论 -
JVM整体结构及内存模型
文章目录作者推荐理由一、JVM整体结构及内存模型二、JVM内存参数设置三、日均百万级订单交易系统如何设置JVM参数作者MRO项目 吴华辉推荐理由在我们的开发中,会不可避免的遇到的,性能问题。因为JVM的内存是有限的,当加载进内存的对象越来越多,就会影响JVM的运行。学习JVM底层可以更好的理解JVM相关调优参数作用。一、JVM整体结构及内存模型二、JVM内存参数设置Spring Boot程序的JVM参数设置格式(Tomcat启动直接加在bin目录下catalina.sh文件里):java原创 2020-08-11 10:18:12 · 331 阅读 · 0 评论 -
利用AOP实现自定义注解
文章目录添加依赖配置切面帮你跳坑怎么使用自定义注解?效果作者:曹亮今天我们就来讲讲切点的另一种配置方式:@annotation,通过@annotation配置切点,我们可以灵活的控制切到哪个方法,同时可以进行一些个性化的设置,今天我们就用它来实现一个记录所有接口请求功能吧。添加依赖新建一个Spring Boot项目,打开pom.xml文件添加相关Maven依赖<dependency> <groupId>org.springframework.boot</gro原创 2020-07-01 17:25:02 · 750 阅读 · 0 评论 -
开源限流框架Sentinel 解析
作者:王依梃推荐理由:在分布式项目中,限流,熔断,降级,都是非常重要的点,作为开发人员,都应该学习掌握,了解思想和用法,在项目需要使用时,能够及时落地。Sentinel 入门Sentinel 看架构图上周边是一系列高大上的开源中间件,这只是他的一种比较华丽的包装,只要你用心去研究他的功能和代码,还是比较容易理解它的原理和结构。其内核 Sentinel Core 是非常轻巧的。1.我们从它的 Hello World 开始,通过深入理解这段入门代码就可以洞悉其架构原理。pom文件引入sentinel-原创 2020-07-01 17:17:02 · 2494 阅读 · 0 评论 -
工作流activiti初探
作者:漏建波推荐理由:可以根据此次介绍简单的了解activiti,后面可以持续学习该框架,做一些更加符合也无需求的工作流功能。activiti的作用在于业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)。activiti的部署非常简单,只需要http://activiti.org/download.html下载解压,有activiti-ex原创 2020-07-01 16:06:14 · 295 阅读 · 0 评论 -
Spring中涉及的设计模式
作者:杨秀丽推荐理由:很好的诠释了Java的设计模式思想,在实际的开发过程中当中很实用,也是一个程序员所必须具备的基本技能。转至元数据起始1.工厂设计模式Spring使用工厂模式可以通过BeanFactory或ApplicationContext创建bean对象。二者对比:BeanFactory :延迟注入(使用到某个 bean 的时候才会注入),相比于BeanFactory来说会占用更少的内存,程序启动速度更快。ApplicationContext :容器启动的时候,不管你用没用到,一次性创原创 2020-07-01 14:56:49 · 307 阅读 · 0 评论 -
业务系统消息接入钉钉推送
作者:李俊杰推荐理由:结合项目,有实用价值。通过钉钉机器人对接系统推送消息 参考https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq获取自定义机器人webhook步骤一,打开机器人管理页面。以PC端为例,打开PC端钉钉,点击头像,选择“机器人管理”。步骤二,在机器人管理页面选择“自定义”机器人,输入机器人名字并选择要发送消息的群,同时可以为机器人设置机器人头像。步骤三,完成必要的安全设置(至少选择一种),勾选 我已阅读并同意《自定义机器原创 2020-07-01 14:53:31 · 3103 阅读 · 0 评论 -
openresty实现动态服务转发
文章目录为什么要用openrest,而没有选择nginxopenresty是什么业务场景:在openresty解析所遇到的问题:作者:李林成推荐理由:该篇文档把openresty请求分发讲解的比较通俗易懂,而且有demo输出,其这篇文章的请求分发有着很高的应用价值。为什么要用openrest,而没有选择nginx主要是openresty实现的了,方便操作lua业务处理openresty是什么是一个基于nginx与lua的高性能web平台,其内部集成了大量精良的lua库、第三方模块以及大多数的依赖原创 2020-07-01 13:36:43 · 2466 阅读 · 0 评论 -
Redis的持久化
作者:韦涛推荐理由:Redis作为分布式缓存架构中重要的一环,会保存一些较为重要的数据,抗住系统的高并发访问。因此Redis中的数据必须持久化,学习持久化配置对应生产环境redis故障保证不丢失和恢复具有重要意义。Redis持久化的两种方式:RDB(Redis Database)快照和AOF(Append OnlyFile)只追加文件。一、RDB(Redis Database)快照快照持久化。Redis可以通过创建快照的形式来获得存储在内存中的数据在某个时间点上的副本。Redis创建快照之后,可原创 2020-07-01 10:17:41 · 321 阅读 · 0 评论 -
jasypt的基本原理
文章目录一、jasypt的启动类加载二、 jasypt中Encryptor、Detector和Resolver加载三、jasypt中EnableEncryptablePropertiesBeanFactoryPostProcesso四、proxy代理方式增强propertySources五、wrapper包装类方式增强propertySources六、resolver中属性值解密作者:史佳健推荐理由:文章详尽并有对应分析说明一、jasypt的启动类加载引入了jasypt-spring-boot-st原创 2020-07-01 09:45:37 · 6819 阅读 · 0 评论 -
原理性分析Switch和If的执行效率,理解阿里代码规约
文章目录文章推荐理由测试代码性能分析Switch自身的策略总结作者:樊远航文章推荐理由从性能测试开始,引出文章主题,通过字节码分析两者性能差别原理,并对switch自身策略不同引起性能不同做了分析,文章分析逻辑清晰,并加上了自身的实践条件判断语句是程序的重要组成部分,也是系统业务逻辑的控制手段。重要程度和使用频率更是首屈一指,那我们要如何选择 if 还是 switch 呢?他们的性能差别有多大?switch 性能背后的秘密是什么?接下来让我们一起来寻找这些问题的答案。测试代码我们采用Oracle原创 2020-06-28 20:04:52 · 1112 阅读 · 0 评论 -
Spring Boot + ShardingSphere实现的分表分库
文章目录作者推荐理由1 概述2 分库分表2.1 引入依赖2.2 Application2.3 应用配置文件2.4 MyBatis 配置文件2.5 实体类2.5.1 OrderDO2.5.2 OrderConfigDO2.6 Mapper2.6.1 OrderMapper2.6.2 OrderConfigMapper2.7 简单测试2.7.1 OrderConfigMapperTest2.7.2 OrderMapperTest3. 读写分离3.1 引入依赖作者ERP项目组 秦华娇推荐理由该篇文档理论原创 2020-05-11 15:55:53 · 736 阅读 · 0 评论 -
大数据量Excel导出及改进版
文章目录作者文章推荐理由代码实现改进版实现作者物流项目组 徐连臣文章推荐理由项目中报表导出很常用,有的开发不注意全量导出如果数据量情况较多的情况往往会导致系统内存溢出,他这个导出是类似分页的模式,每查一页就写到文件,就规避了内存溢出的问题,而且用了反射,通用性较强。推荐人:老鹰。代码实现Excel导出时,如果一次性查询的数据量过大,容易造成内存溢出,导致系统服务挂了,如果Excel的一个sheet页的数据很大的话,打开Excel时加载数据就会花很长时间,如何分批查,分批插呢?使用SXSSFWor原创 2020-05-09 14:06:59 · 289 阅读 · 0 评论 -
Lombok最全使用详解
这里写自定义目录标题作者为什么使用LombokLombok官网的介绍运行原理Lombok的安装1、添加依赖2、添加插件(推荐)常用注解举例说明【1】@Getter @Setter【2】@ToString【3】@EqualsAndHashCode【4】NonNull【5】NoArgsConstructor、RequiredArgsConstructor、AllArgsConstructor【6】D...原创 2020-05-07 17:43:16 · 3198 阅读 · 2 评论 -
SpringBoot+WebSocket+Netty实现消息推送
这里写自定义目录标题作者Netty在项目中的应用场景大概实现思路第零步:第一步:第二步:第三步:第四步:第五步:作者中台项目组 司晓杰Netty在项目中的应用场景消息推送功能,可以满足给所有用户推送,也可以满足给指定某一个用户推送消息,创建的是SpringBoot项目,后台服务端使用Netty技术,前端页面使用WebSocket技术。大概实现思路1 前端使用webSocket与服务端创...原创 2020-05-07 16:54:09 · 1696 阅读 · 2 评论