java
王佑辉
个人笔记,多谢指正,不喜勿喷
展开
-
【java】前端RSA加密后端解密
5.ApiDecryptParamResolver是解析requestParam参数的,这里没写全,需要额外写注解。3.此示例是前端加密,后端解密,后端返回的数据未加密。如果后端相应数据也要加密,可以另写注解,采用对称加密。4.公钥私钥的base64格式可以由RsaUtil工具类生成,参考其中main方法。5.在需要加密的接口上添加自定义注解@ApiDecryptRsa即可解密。2.前端采用公钥加密,后端采用私钥解密。1.RSA是非对称加密。原创 2024-09-27 14:52:17 · 1362 阅读 · 0 评论 -
【java】websocket对接微软语音实时识别
/ log.info("开始write,EchoStream");= 0){//log.info("开始read,EchoStream");try {if (!@Overridetry {// 唤醒所有等待的线程try {// 注意:我们在这里不唤醒任何线程,因为它们是等待信号被设置try {while (!原创 2024-05-20 17:00:49 · 555 阅读 · 0 评论 -
【问题】feignClient接口既走了正常接口也走了回调接口问题
2.回调接口ISearchClientFallback继承FallbackFactory,并打印错误日志。2.说是IPage是接口,不能实例化,因此可以自定义MyPage实现IPage接口进行转化。1.将feign接口中的fallback改为fallbackFactory。1.调用一次feign接口发现既走了正常接口也走了回调接口。3.重启服务重新调用接口。原创 2024-04-07 16:14:29 · 407 阅读 · 0 评论 -
【设计模式】模板方法模式
1.在父类定义一个操作中的算法骨架,将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。原创 2023-11-27 14:01:39 · 481 阅读 · 0 评论 -
【java】JdbcTemplate的简单使用
【代码】【java】JdbcTemplate的简单使用。原创 2023-09-04 11:47:43 · 287 阅读 · 0 评论 -
【java】获取当前年份
【代码】【java】获取当前年份。原创 2023-08-29 10:53:36 · 2246 阅读 · 0 评论 -
【juc】AQS原理
1.是一个抽象父类,全称是AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架2.用法是同步器类继承该父类,去实现父类的方法,调用同步器类的方法达到加锁、解锁等目的。原创 2023-07-29 21:44:05 · 236 阅读 · 0 评论 -
【poi】使用poi时报错:java.io.EOFException: Unexpected end of ZLIB input stream
【代码】【poi】使用poi时报错:java.io.EOFException: Unexpected end of ZLIB input stream。原创 2023-07-27 10:28:58 · 548 阅读 · 0 评论 -
【java】String类的不可变设计
1.substring方法内部是调用String的构造方法创建了一个新的字符串,并没有改变原有的字符串。3.类用final修饰保证了该类中的方法不能被覆盖,防止子类无意间破坏不可变性。2.通过创建副本对象来避免共享的手段称为保护性拷贝defensive copy。2.属性用final修饰保证该属性是只读的,不能修改。1.该类、类中的所有属性都是final的。原创 2023-07-08 21:50:52 · 202 阅读 · 0 评论 -
【java】lambda表达式
1.大数据量下处理集合效率非常高,易于并发编程(并行流,使用多线程处理)2.方法体只有一句代码时,大括号return和唯一一句代码的分号可以省略。4.不用关注是什么对象,关注对数据进行什么样的操作。6.基本格式:(参数列表)->{代码}7.使用条件:是接口且只有一个抽象方法。3.方法只有一个参数时小括号可以省略。2.可以对匿名内部类的写法进行简化。3.是函数式编程思想的一个重要体现。2.代码简洁可读性高、快速开发。1.是jdk8中的一个语法糖。5.核心原则是可推导可省略。1.参数类型可以省略。原创 2023-06-24 15:24:27 · 290 阅读 · 0 评论 -
【java】上传与下载
【代码】【java】上传与下载。原创 2023-06-13 11:03:04 · 163 阅读 · 0 评论 -
【java】@Retention注解
7.java源文件(.java文件) 、编译后的文件(.class文件) 、内存中的字节码,生命周期比较 SOURCE < CLASS < RUNTIME ,作用范围越来越大。4.RetentionPolicy.SOURCE:被修饰的注解只会保留在源文件,当.java文件编译成.class文件时,被修饰的注解会被遗弃。5.RetentionPolicy.CLASS:被修饰的注解被保留到.class文件,jvm加载.class文件时候被遗弃,是默认的生命周期。原创 2023-06-05 22:14:59 · 1653 阅读 · 0 评论 -
【java】@Target注解
6.ElementType.LOCAL_VARIABLE:允许作用在本地局部变量上。1.ElementType.TYPE:允许被修饰的注解作用在类、接口和枚举上。7.ElementType.ANNOTATION_TYPE:允许作用在注解上。5.ElementType.CONSTRUCTOR:允许作用在构造器上。4.ElementType.PARAMETER:允许作用在方法参数上。2.ElementType.FIELD:允许作用在属性字段上。3.ElementType.METHOD:允许作用在方法上。原创 2023-06-05 21:54:25 · 614 阅读 · 0 评论 -
【java】mapperstruct将date转string
【代码】【java】mapperstruct将date转string。原创 2023-05-22 14:46:16 · 1187 阅读 · 0 评论 -
【java】获取最近30天
获取最近30天原创 2023-05-19 14:01:36 · 1214 阅读 · 0 评论 -
【java】树结构数据组装
【代码】【java】树结构数据组装。原创 2023-04-23 10:24:32 · 441 阅读 · 0 评论 -
【java】反射机制
1.将类的各个组成部分封装为其他对象。原创 2023-04-15 22:45:58 · 506 阅读 · 0 评论 -
【java】按指定开始符号、结束符号循环截取字符串与去除
123原创 2023-04-12 11:46:51 · 340 阅读 · 0 评论 -
【java】final关键字
2.自定义常量,被final修饰的变量,被赋值一次就变成了常量,例如final int a = 20;还是可以修改的,因为student指向的是student的内存地址,被final修饰后是不能变的,但age属性的地址没有被final修饰,所以是可变的。1.字面值常量,能够直接写出来的数据,例如100,3.14,‘a’,true,“abcd”,null(null不能被直接打印)3.final修饰变量(成员变量、静态变量和局部变量),只能被赋值一次。4.final修饰的变量,变量的属性值是可以重新赋值的。原创 2023-03-27 21:40:25 · 123 阅读 · 0 评论 -
【rabbitmq】rabbitmq高级特性之消费者Ack
Acknowledge消费端收到消息后的确认方式原创 2023-02-25 13:43:01 · 424 阅读 · 0 评论 -
【rabbitmq】rabbitmq高级特性之消息的可靠投递
rabbitmq消息的可靠投递原创 2023-02-23 21:50:48 · 314 阅读 · 0 评论 -
【面试】谈谈对Spring的理解
对spring的理解原创 2023-02-22 22:34:31 · 291 阅读 · 0 评论 -
【面试】单例的实现方式
单例的实现方式原创 2023-02-19 21:29:45 · 61 阅读 · 0 评论 -
【java】spi使用
spi的使用原创 2023-02-05 21:53:59 · 853 阅读 · 0 评论 -
【java】单例模式双重检验锁
单例模式双重检验锁原创 2022-11-24 21:35:52 · 971 阅读 · 0 评论 -
【java】websocket接口接收多个请求参数
websocket原创 2022-10-28 12:05:01 · 3177 阅读 · 0 评论 -
【java】swagger校验RequestParam参数不能为空
@Validatedpublic class TestController{ @GetMapping("/test") @ApiImplicitParams({ @ApiImplicitParam(name = "name", value = "名称", paramType = "query", dataType = "string", required = true), }) @ApiOperation(value = "名称", notes = "名称") public R checkT原创 2021-12-30 17:43:01 · 2774 阅读 · 0 评论 -
【java】swagger传文件报Required request part ‘file‘ is not present
@PostMapping(value = "/upload-file", consumes = "multipart/*", headers = "content-type=multipart/form-data")@ApiOperation(value = "上传文件")@ApiImplicitParams({@ApiImplicitParam(paramType = "form", name = "file", value = "文件", required = true, dataType = "原创 2021-12-09 17:45:38 · 1080 阅读 · 0 评论 -
【java】mapstruct自定义类的转换示例
//通过createUserId获取到createUserName@Mappings({ @Mapping(target = "createUserName", expression = "java(com.test.NameConverter.getUserNameById(entity.getCreateUserId()))"), }) StudentVO studentEntityTOVO(StudentEntity entity);public class NameConverter原创 2021-11-26 18:10:13 · 972 阅读 · 0 评论 -
【java】mybatis foreach传入list用法
1.xml中的sql//随便写的sql,不用在意语法<select id="test" resultMap="storageResultMap"> select * from storage where 1 = 1 <foreach collection="list" item="item" index="index"> <if test="item.name != null and item.name != '.原创 2021-11-23 15:56:25 · 418 阅读 · 0 评论 -
【java】swagger字段关联校验
示例1.校验逻辑:当age大于20时,name不能为空2.@ApiIgnore忽略isCheckName在文档中显示@ApiModelProperty(value = "姓名")private String name;@ApiModelProperty(value = "年龄")private String age;@ApiIgnore@AssertTrue(message = "年龄大于20时,姓名不能为空")public boolean isCheckName(){ if(a原创 2021-11-03 19:22:41 · 458 阅读 · 0 评论 -
【java】swagger正则校验字段
@Pattern(regexp="^teacher|student$", message="类型应为[teacher-老师|student-学生]")private String type;原创 2021-10-20 15:35:32 · 1077 阅读 · 0 评论 -
【java】mybatis-plus lambda表达式符号总结
1.函数名及用法//查询学生QueryWrapper<Student> queryWrapper = new QueryWrapper();函数说明举例eqequals等于(=)queryWrapper.lambda().eq(Student::getName,“老王”);nenot equals不等于(<>)queryWrapper.lambda().ne(Student::getName,“老王”);gtgreater than原创 2021-10-16 12:16:25 · 6794 阅读 · 0 评论 -
【java】java合并日期时间区间
/** * @param list * @return * @throws Exception */ private static List<Time> merge(List<Time> list) throws Exception{ Collections.sort(list, new Comparator<Time>() { @Override public原创 2021-10-14 17:39:10 · 721 阅读 · 0 评论 -
【docker】nacos注册地址为Docker内网IP访问不到问题
test-server: # 与宿主机共享ip network_mode: "host" # 端口映射会失效 ports: - 18888:8888 # networks: # test-net: # aliases: # - test-server原创 2021-10-14 14:07:37 · 1521 阅读 · 0 评论 -
【java】上传文件java.io.IOException: UT000128: Remote peer closed connection before all data could be read
1.错误截图2.原因1.在读取所有数据之前,远程对等方已关闭连接2.file文件比较大,读取时间过长,前端请求timeout超时,中断了请求3.解决检查前端timeout超时时间,太小可以设置大一点(封装的一些前端组件有默认的timeout)检查网络带宽,缩短上传时间...原创 2021-09-16 18:05:41 · 6966 阅读 · 0 评论 -
【java】map操作
1.遍历for (String key : map.keySet()) { System.out.println("key= "+ key + " value= " + map.get(key)); } //第二种:通过Iterator迭代器遍历循环Map.entrySet().iterator();Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();while (it.has原创 2021-08-28 10:33:13 · 196 阅读 · 0 评论 -
【vue】zip下载
1.前端<template> <el-button size="medium" @click="handleDownload()"> 下载 </el-button> </template><script>import { downloadZip} from './api'export default{ name: 'test', data() { return { } },原创 2021-07-19 17:14:52 · 143 阅读 · 0 评论 -
【java】Mybatis-Plus控制sql语句打印
配置修改mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl原创 2021-07-07 10:24:06 · 301 阅读 · 0 评论 -
【java】zip解压缩示例
1.代码示例import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.nio.file.*;import java.nio.file.attribute.BasicFileAttributes;import java.util.LinkedList;import java.util.stream.Collectors;import java.util.zip.Zi原创 2021-07-07 09:14:12 · 95 阅读 · 0 评论