开发模板总结
文章平均质量分 50
本专栏主要沉淀并总结开发模板,便于直接上手使用。
Andya_net
公众号:CodingTechWork
觉得为时已晚的时候,恰恰是最早的时候。
展开
-
Java | 使用Java Mail发送邮箱
在一些业务功能中,发送邮件是必须的,比如告警通知、日报、月报等信息推送,都需要通过邮件服务器来发送邮件。原创 2024-04-07 11:19:21 · 362 阅读 · 0 评论 -
Java | 数据一致性校验遇到的时间序列化格式不一致问题如何解决?
在开发过程中,有数据一致性校验需求。方法进行时间格式的统一准换。进行序列化时,我们可以使用。原创 2023-11-30 22:32:27 · 355 阅读 · 0 评论 -
Java | 多线程并发编程CountDownLatch实践
在并发编程过程中,如何让多个线程之间协调执行任务,如主线程等所有其他异步线程执行完毕后再继续执行下面的步骤,如何做到?我们可以考虑使用。主要是起到线程之间的同步协调作用,而不是互斥。它可以让一个线程等待其他线程完成任务后,再继续执行自己的任务。是一个同步工具类,主要应用于多线程编程场景中,可以用于控制等待线程的执行,或者说是协调多个线程之间的同步。用好这个工具类,主要关注这个工具类的初始计数值的设置、方法、await()方法即可实现编程。原创 2023-11-25 12:10:44 · 263 阅读 · 0 评论 -
Java | 使用ServerSocket查找TCP可用端口
在项目开发中,有一个程序是专门给服务下发tcp端口占用的,但是tcp端口有时候会被其他服务给占用,此时端口就会冲突。本文提供一个工具类进行端口占用判断并返回可用端口。查找当前服务器被占用的tcp端口,如查看到64661端口被占用,运行上述main函数。原创 2023-08-21 11:21:38 · 638 阅读 · 0 评论 -
SpringBoot | RestTemplate异常处理器ErrorHandler使用详解
异常处理器功能描述异常处理器接口,是restTemplate所有异常处理器的实现接口默认的异常处理器,处理客户端和服务端异常将HTTP错误响应转换RestClientException不处理异常/*** 继承默认错误处理器DefaultResponseErrorHandler,无需关注hasError和handlerError方法*/@Component/*** my service进行定制化处理*/@Autowired@Override=302;@Override。原创 2023-08-17 23:10:27 · 983 阅读 · 0 评论 -
SpringBoot | 使用newWorkStealingPool和CompletableFuture进行并发异步处理
一个列表操作需要异步处理每个元素,最终需要将列表各个元素的操作结果统一返回,无需关注该列表中的顺序执行。这个线程池不会保证任务的顺序执行,即为WorkStealing抢占式的工作。原创 2023-08-13 16:30:39 · 524 阅读 · 0 评论 -
Java | 反射调用类和方法时依赖注入失效问题排查与解决
在开发过程中,使用反射进行类的方法调用时,遇到了依赖注入问题,通过demo进行问题复现和还原并记录。原创 2023-06-27 13:48:39 · 1202 阅读 · 0 评论 -
MySQL—sql语句多个字段模糊查询并指定优先级排序
在进行一些产品开发时,需要在一个填写框中填写名称或者编码进行精准或模糊查询。原创 2023-03-13 14:19:58 · 2793 阅读 · 0 评论 -
Java | 枚举Enum中使用反射转换属性值
在开发过程中,有时候需要需要根据各个枚举类中一个字段属性值转为另一个字段属性值,如根据code转为name的需求进行前端展示。本文总结一下如何通过反射简单巧妙的进行枚举属性值的互相映射。原创 2023-06-27 13:48:21 · 599 阅读 · 0 评论 -
SpringBoot——MyBatis-Plus源码分析及开发实践详解
在上一家公司一直使用,它是对基于JPA的数据访问层的增强支持,底层使用框架,支持使用原生L或查询语言。是基于的,它把代码和分离,即在代码和之间增加了新的一层,从而间接操作,大家可能觉得这个学习成本比较高,但其实也还好,都用不到文件等。 而在新的公司,使用的是,面向基于的模式,复杂的需要通过写文件来操作可能更直观友好,当结合就原地起飞了。本文主要总结使用的一些实践经验及源码分析。 是的增强工具,可以简化开发,提高我们的开发效率。原创 2023-04-25 14:22:56 · 1105 阅读 · 0 评论 -
SpringBoot——邮箱地址列表过滤出合法地址列表
SpringBoot——邮箱地址列表过滤出合法地址列表。原创 2023-04-23 14:38:09 · 226 阅读 · 1 评论 -
SpringBoot——单元测试实践总结
mock是指在测试过程中,创建一个虚拟的对象来模拟指定对象的行为。PowerMock时一个Java单测模拟的框架,扩展了EasyMock和Mockito框架。PowerMock通过提供定制的类以及一些字节码篡改技巧进行模拟。PowerMock可模拟静态方法、私有方法、构造方法、final方法等。PowerMock支持JUnit和TestNG。原创 2023-04-16 20:06:07 · 1396 阅读 · 4 评论 -
SpringBoot——结合nacos实现动态刷新自定义线程池
1. 实现自定义线程池2. 实现线程池参数动态刷新原创 2023-04-07 17:31:11 · 276 阅读 · 0 评论 -
SpringBoot—枚举类属性值是否包含判断
在一些校验中,需判断一个值是否包含在枚举属性值中,如下总结枚举属性值包含判断功能。原创 2023-04-03 19:11:05 · 551 阅读 · 0 评论 -
SpringBoot—根据起始时间和终止时间获取ES索引名称范围
根据ES的起始时间字段,查询索引名称范围。前提,索引名称也是按照年月来命名,如。原创 2023-04-03 19:29:03 · 501 阅读 · 0 评论 -
SpringBoot—bean工具类封装
在Java开发代码中,经常会有一些对象Bean转换的需求,如下进行模板总结。原创 2023-04-03 19:05:52 · 247 阅读 · 0 评论 -
SpringBoot——校验参数是否包含在枚举属性值中
在一些枚举类调用中,我们需要对一些枚举的属性值做包含关系的判断,看是否匹配。通过反射机制获取对应方法,再获取对应的枚举属性值。下面是示例实现。原创 2023-03-08 11:09:18 · 870 阅读 · 0 评论 -
SpringBoot——启动服务时获取所有controller层的接口url列表
在服务启动时,获取服务的所有controller层接口url列表,通过实现服务启动时的操作。原创 2023-03-07 13:52:17 · 2693 阅读 · 0 评论 -
SpringBoot——Service单元测试(包含mybatis、mapper、私有方法等)
在写单元测试时,免不了遇到私有方法、数据库等一些操作,此时就需要一些mock处理。原创 2023-01-09 16:26:56 · 1713 阅读 · 0 评论 -
SpringBoot——controller单元测试无需启动上下文的方式
本次通过单独类进行单元测试,无需启动上下文。原创 2023-01-05 09:28:31 · 683 阅读 · 0 评论 -
设计模式—策略模式的设计与使用
针对一组算法,将每一个算法封装到具有共同接口的独立类中,也就是给出一个接口或者抽象类A(类似于规范),其他类B、C、D实现或者继承A进行具体算法或行为的描述。原创 2022-11-01 15:00:47 · 151 阅读 · 0 评论 -
Linux—数组/包含关系判断/正则判断的shell脚本
linux shell的数组、包含判断、正则判断的使用。原创 2022-08-26 16:34:25 · 667 阅读 · 0 评论 -
Flink—读Hive表数据写入Kafka
数仓Hive中的数据需要读取后写入Kafka中进行数据服务输出。原创 2022-08-26 16:01:10 · 1300 阅读 · 0 评论 -
SpringBoot——使用powermock进行静态方法的单元测试
单元测试:对静态方法引用后做单测原创 2022-08-24 14:21:19 · 1038 阅读 · 0 评论 -
Java—通过sign签名认证实现安全的开放接口API
Java—通过sign签名认证实现安全的开放接口API原创 2022-08-11 19:33:48 · 2591 阅读 · 0 评论 -
Linux—赋予sudo权限进行用户创建
Linux—赋予sudo权限进行用户创建原创 2022-08-11 19:10:54 · 441 阅读 · 0 评论 -
Spring—使用类加载从配置文件中读取配置
引言 SpringBoot中可以使用@Value直接resources目录下的配置文件中读取相关配置参数。但是非微服务模式下,可以使用类加载机制进行获取。模板public class PropertiesConfig { private static Properties properties; private PropertiesConfig() {} public static Properties getInstance() throws Exception{ synchron原创 2022-04-11 20:04:37 · 419 阅读 · 0 评论 -
SpringBoot——Quartz定时框架的使用详解和总结
引言 一般在使用定时任务时,我们首先会想到使用@Scheduled注解去给某个任务设置定时时间进行定时执行。当定时任务过多时,或者有增删改查需求时,@Scheduled注解将无法满足我们的需求。本文一起学习总结Quartz定时框架的使用。Quartz介绍概述Quartz is a richly featured, open source job scheduling library that can be integrated within virtually any Java applicat原创 2021-04-02 08:30:39 · 617 阅读 · 0 评论 -
SpringBoot——@Scheduled的自定义周期性线程池解决任务延时执行问题
关注微信公众号:CodingTechWork,一起学习进步。问题 在使用Spring中的@Scheduled注解设置定时任务时,遇到这样2个问题:定时任务未按时执行,现象是延后了一段时间才执行定时任务。多个定时任务有时间重叠时,无法并发调度执行。分析 出现上面问题现象的根因是Spring的定时任务默认是单线程执行,所以会在某些场景下造成阻塞。当然我们可以通过@Async注解来异步执行这些并发的@Scheduled注解的定时任务,而@Async线程池容量是100,当超过100个线程并发执.原创 2021-03-31 08:49:55 · 2612 阅读 · 0 评论 -
JAVA——实现json bean实体类的传参校验模板及注解详解
关注微信公众号:CodingTechWork,一起学习进步。引言 在java开发中,经常需要和外界系统进行参数对接,api设计中难免会遇到json传参不一致的情况,虽然纸面或者接口规范约束了应该怎么传参,仍然不可避免在对接过程中,出现传参不符合要求的,如传空值、传超过范围的值等。除了在Controllers层面使用@Validated或者@Valid注解外,本文将总结使用javax.validation.*;下的包进行校验的模板和常用的注解含义。常用注解注解类型说明@Not.原创 2021-02-25 21:04:03 · 1500 阅读 · 3 评论 -
SpringBoot—单元测试模板(controller层和service层)
介绍概述 在开发过程中,我们经常会一股脑的写各种业务逻辑,经常等全部大功告成的时候,打个jar包放环境里跑跑看看能不能通,殊不知在各个业务方法中已经漏洞百出,修复一个打一个包,再继续修复,这种效率真的太低下。 所以我们需要借助一些单元测试来将我们写的代码做一些测试,这样保证局部方法正确,最后再打包整体运行将整个流程再串起来就能提高开发试错效率。当然,我们除了单元测试,我们还可以通过main()方法在每个类中进行测试,文中会一带而过。常用注解@RunWith(SpringRunner.clas原创 2020-06-02 19:17:37 · 2784 阅读 · 0 评论 -
SpringBoot—整合log4j2入门和log4j2.xml配置详解
关注微信公众号:CodingTechWork,一起学习进步。引言 对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维。而日志的输出需要有一定的规划,如日志命名、日志大小,日志分割的文件个数等。在Spring的框架下,我们可以使用log4j来进行日志的设置,高版本的SpringBoot会使用log4j2。介绍log4j2概述 截取官网的原话:Apache Log4j 2 is an upgrade to Log4j that provides significant impr.原创 2020-09-09 20:04:27 · 2119 阅读 · 1 评论 -
SpringBoot—JPA和JDBC常用配置说明
本文主要介绍Spring Boot中使用JPA或JDBC进行数据库表结构创建的两种方式。介绍 在利用SpringBoot框架进行开发时,大部分服务避不开用数据库进行数据存储和使用。SpringBoot里面一般有两种方式进行数据表的创建和数据存储。 一种是使用Spring Boot JPA,我们需要在application.yml或者application.properties中配置jpa相关属性spring.jpa.xxx属性配置。另一种是Spring JDBC,我们需要在application原创 2020-07-06 09:14:46 · 2652 阅读 · 0 评论 -
SpringBoot—自定义线程池及并发定时任务模板
介绍 在项目开发中,经常遇到定时任务,今天通过自定义多线程池总结一下SpringBoot默认实现的定时任务机制。定时任务模板pom依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <原创 2020-05-29 16:00:24 · 824 阅读 · 0 评论 -
Linux—编写shell脚本操作数据库执行sql
修改数据库数据 在升级应用时,我们常常会遇到升级数据库的问题,这就涉及到sql脚本的编写。 一般我们会通过写sql脚本,然后将xxx.sql脚本放到数据库中进行source xxx.sql执行。本篇文章,我们可以通过写shell脚本来执行数据库操作。配置文件创建 test_sql.properties 作为shell脚本的外部配置参数修改:[andya@liunx01 sql_sh]...原创 2020-03-19 14:59:29 · 2454 阅读 · 0 评论 -
MySQL—Linux查看客户端连接信息(连接数、进程等)及SpringBoot配置数据库模板
介绍 在开发或者运维过程中,我们连接数据库的时候突然会遇到"Too many Connections"这种报错信息;这时我们就需要排除一下是哪些程序客户端连接较多而没有释放。查看mysql数据库连接数查看最大连接数show variables like 'max_connections';查看已使用连接数show status like 'max%connections';发现已使用的已经大于最大连接数。更改最大连接数全局set(临时)这种方式重启mysql后会失效。set GL原创 2020-05-22 12:38:13 · 6047 阅读 · 2 评论 -
Linux—shell脚本化工具模板
shell脚本介绍 在研发过程中,不断的有项目或者产品升级,在此过程中,我们可以充分利用shell脚本去实现一些固定步骤的一键部署和升级。配置文件 在编写脚本前,我们可以编写一个额外的配置文件作为一键部署的入参文件,脚本可以读取到该配置文件中的变量值。届时,只需要修改配置文件内的配置,而无需更改脚本。如:test.properties[root@linux01 ~/test_sh]#...原创 2020-03-16 22:17:22 · 310 阅读 · 0 评论 -
Linux—微服务启停shell脚本编写模板
run.sh#!/bin/bashif [ -s java.pid ]then echo "重复启动,退出" exit 0fijar_file=`ls *.jar | head -n 1`echo $jar_filejava -Djava.security.egd=file:/dev/./urandom -jar $jar_file > test.log 2&g...原创 2020-04-13 18:26:19 · 306 阅读 · 0 评论 -
SpringBoot—集成AOP详解(面向切面编程Aspect)
AOP介绍AOP概述 AOP是Aspect-Oriented Programming,即为面向(切面)方面编程。在维基百科中的解释:Aspect是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点。从关注点中分离出横切关注点是面向切面的程序设计核心概念。分离关注点使得解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑代码不需要再包含针对特定领域问题代码的调用,比如一些公用模块的...原创 2020-04-12 15:27:35 · 1270 阅读 · 1 评论 -
Java—CountDownLatch使用详解
CountDownLatch介绍CountDownLatch概述CountDownLatch一般用作多线程倒计时计数器,强制它们等待其他一组(CountDownLatch的初始化决定)任务执行完成。有一点要说明的是CountDownLatch初始化后计数器值递减到0的时候,不能再复原的,这一点区别于Semaphore,Semaphore是可以通过release操作恢复信号量的。CountDownLatch使用原理使用原理创建CountDownLatch并设置计数器值。启动多线程并且调用C原创 2020-05-20 19:34:27 · 1341 阅读 · 0 评论