摘要:前言 在平时的开发工作中,我们通常需要对接口进行参数格式验证。当参数个数较少(个数小于3)时,可以使用if ... else ...手动进行参数验证。 当参数个数大于3个时,使用if ... else ...进行参数验证就会让代码显得臃肿,这个时候推荐使用注解来进行参数验证。 常用注解 下面列举一些
阅读全文
摘要:1.这种可以 但是在容器中获取不到(以下几种都可以只要不在容器)。 InputStream inputStream = this.getClass().getResourceAsStream("/static/imgs/aha.png"); Properties pps = new Properti
阅读全文
摘要:异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:发送短信、邮件、异步更新等,这些都是典型的可以通过异步实现的场景。 异步的八种实现方式 线程Thread Future 异步框架CompletableFuture Spr
阅读全文
摘要:一、什么是SQL注入? SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。 SQL案列
阅读全文
摘要:1. 什么是虚拟线程 虚拟线程是JDK21版本正式发布的一个新特性。虚拟线程和平台线程主要区别在于,虚拟线程在运行周期内不依赖操作系统线程:它们与硬件脱钩,因此被称为“虚拟”。这种解耦是由JVM提供的抽象层赋予的。 虚拟线程的运行成本远低于平台线程。它们消耗的内存要少得多。这就是为什么我们可以创建数
阅读全文
摘要:案例说明 案例只针对post请求 这里使用’Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’;为键值对的形式(非json) AES加密数据,RAS加密AES的key 实现思路 前台首先请求非加密接口获取后台的公钥前台在
阅读全文
摘要:目录 用来循环容器的标签forEach,查看例子 concat模糊查询 choose (when, otherwise)标签 selectKey 标签 if标签 if + where 的条件判断 if + set实现修改语句 if + trim代替where/set标签 foreach 用来循环容器
阅读全文
摘要:直接上源码:https://gitee.com/huangtao_2021/springboot-learn/tree/master/springboot-mongodb spring: mongodb: maxSize: 100 # 允许的最大连接数。这些连接在空闲时将保留在池中。一旦池耗尽,任何
阅读全文
摘要:/** * 并发去重去重 */ @RequestMapping("/debuplication") public R Debuplication() { //两个请求一样,但是请求时间差一秒 String req = "{\n" + "\"requestTime\" :\"2019010112000
阅读全文
摘要:方式一:idea中设置 -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC 方式二:发布时
阅读全文
摘要:https://gitee.com/huangtao_2021/springboot-job-master.git
阅读全文
摘要:https://gitee.com/huangtao_2021/springboot-file-online-preview 原来开源项目基础上做简单修改,增加接口http://127.0.0.1:8012/prefileview?fileUrl=,直接放入可以访问的文件地址即可,如 http://
阅读全文
摘要:1、引入依赖 <!--配置多数据源--> <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>3.5.0</vers
阅读全文