Java
我高考零分!
斯人若彩虹 遇上方知有.
展开
-
IDEA 创建类时自动生成注释
IDEA 创建类时自动生成注释原创 2024-08-14 08:53:48 · 488 阅读 · 0 评论 -
JWT基础(一)
jwt 简称 JSON Web Token ,也就是以Json的形式作为web中的令牌。在数据传输过程中还可以完成数据加密、签名等操作。转载 2024-01-17 14:12:27 · 188 阅读 · 0 评论 -
JAVA格式化数字 整数前自动补零
在对接第三方接口参数,因枚举值设置的不一致,此时需要参数需要补零,因此需要进行参数值转换。原创 2023-08-23 16:04:32 · 1301 阅读 · 0 评论 -
Springboot调整接口响应返回时长详解(解决响应超时问题)
当后端对于数据量较大的处理或是某些耗时的操作时,需要先对请求接口的请求进行响应。实际场景中会遇到请求业务处理流程耗时较长,比如长查询,远程调用等,主线程会被一直占用会影响其他请求的响应,导致服务端性能下降。同时,前端向服务端发送请求后等待响应的超时时间比较短(一般20s或30s),而我们实际业务执行可能超过1分钟。原创 2023-07-19 17:25:49 · 20696 阅读 · 0 评论 -
@JsonFormat与@DateTimeFormat注解的使用
@JsonFormat与@DateTimeFormat注解的使用与区别转载 2023-05-15 14:58:22 · 461 阅读 · 1 评论 -
Java使用Validator类进行实体属性格式验证(一次性返回所有验证结果)
在开发过程中,经常需要对自定义组装的类进行字段校验,因此专门分装了一个对实体类属性格式验证的方法原创 2022-08-15 17:01:09 · 2283 阅读 · 0 评论 -
eureka如何剔除和恢复某个服务
在开发环境中,同一个服务经常被其他开发人员注册到开发环境,导致服务没法正常访问,那么如何将该服务剔除或下线?原创 2022-08-08 09:43:21 · 4056 阅读 · 0 评论 -
HttpClient发送Https请求报 : unable to find valid certification path to requested target
HttpClient发送Https请求报 : unable to find valid certification path to requested target原创 2022-07-06 09:24:22 · 2732 阅读 · 6 评论 -
java 时间格式“yyyyMMddHHmmssSSSSSS”的解释
java 时间格式“yyyyMMddHHmmssSSSSSS”的解释原创 2022-06-07 00:00:00 · 40717 阅读 · 0 评论 -
集成flyway反复报错:Found non-empty schema(s) “vhr“ but no schema history table.
集成flyway反复报错:Found non-empty schema(s) "vhr" but no schema history table.原创 2022-06-06 11:38:44 · 2706 阅读 · 0 评论 -
Java多线程实现第三方数据同步
最近的一项开发任务是同步第三方数据,而第三方数据一般有存量数据和增量数据,存量数据有100w+。在得知此需求时,进行了一定的信息检索和工具学习,提前获取存量数据到目标库,再使用kettle进行存量数据转换;增量数据则根据业务方规定的请求时间,**通过定时任务去获取增量数据并进行数据转换**。在数据获取和转换时,我们应该要记录每一次的请求信息,便于溯源和数据对账!!!...原创 2022-05-30 10:33:07 · 1607 阅读 · 2 评论 -
Linux安装JDK并配置环境变量
Linux环境下安装JDK1.8原创 2022-05-26 00:00:00 · 110 阅读 · 0 评论 -
对Java的常用对象(POJO、DTO、PO、BO、VO、DAO)详细解释及应用场景
一、POJO(Plain Ordinary Java Object)。简单而言,就是一个简单的对象,而且没有任何规则约束。有的时候拿POJO来泛指用来做传输对象Java bean(包括今天要介绍的DTO、VO、BO、PO等)也是可以的。二、DTO(DataTransferObject)数据传输对象,单纯用来数据传输的对象。我们有的项目又分InDto和OutDto,顾名思义就是输入和输出的Dto。三、PO(Persi...原创 2022-03-07 10:44:03 · 1367 阅读 · 0 评论 -
java 非常好用的反射框架Reflections
Reflections通过扫描classpath,索引元数据,并且允许在运行时查询这些元数据。使用Reflections可以很轻松的获取以下元数据信息:1)获取某个类型的所有子类;比如,有一个父类是TestInterface,可以获取到TestInterface的所有子类。2)获取某个注解的所有类型/字段变量,支持注解参数匹配。3)使用正则表达式获取所有匹配的资源文件4)获取特定签名方法。通常的用法有:引入依赖jar<dependency> <gr转载 2022-02-15 14:15:36 · 928 阅读 · 0 评论 -
Mybatis 使用java注解和XML的区别
一、理由1.java注解是受限的,功能较少,而Mybatis的Mapper内容相当多,而且相当复杂,功能很强大,使用XML文件方式可以带来更为灵活的空间,显示出mybatis功能的强大和灵活。2.如果你的SQL很复杂,条件很多,尤其是存在动态SQL的时候,写在java文件里面的可读性较差,增加了维护的成本。...原创 2022-01-07 17:43:18 · 918 阅读 · 0 评论 -
Java Set<String> 的基础用法
Java Set<String> 的基础用法原创 2022-01-04 09:55:15 · 10027 阅读 · 0 评论 -
Java 中List集合怎么判断是否为空
Java 中List集合怎么判断是否为空原创 2021-12-28 16:38:06 · 624 阅读 · 0 评论 -
Java ApplicationContextUtils
获取全局变量原创 2021-12-23 13:51:53 · 971 阅读 · 0 评论 -
Spring SqEl表达式 自动匹配参数并得出结果
SpEL(Spring Expression Language),即Spring表达式语言,是比JSP的EL更强大的一种表达式语言。为什么要总结SpEL,因为它可以在运行时查询和操作数据,尤其是数组列表型数据,因此可以缩减代码量,优化代码结构原创 2021-12-23 11:18:25 · 1298 阅读 · 1 评论 -
Java thymeleaf应用
1.thymeleaf的if多条件判断<tr th:if="${data.subject ne 102 && data.isCompanyCheck eq 0} ">2.thymeleaf的三元运算<span th:text="${user.sex} ? '男':'女'"></span>3.时间格式转换 #dates.format('时间',''yyyy-MM-dd'')<td th:text="${#dates.forma原创 2021-12-20 15:54:45 · 454 阅读 · 0 评论 -
Spring boot基于@Valid和@Validated验证List集合
一、场景 在项目研发时,经常会遇到接口是需要接收一个List变量,但是又不想单独去对List参数去进行校验,此时可以使用@Validated注解 +@Valid注解 解决此类问题二、使用方法1.在Controller上添加@Validated注解2.在方法上添加@Valid注解三、实体类@Datapublic class User { @Length(max = 10) @NotBlank(message = "用户姓名不能为空") ...原创 2021-11-26 15:03:17 · 5422 阅读 · 10 评论 -
SpringBoot 整合 Swagger3.0 和 Knife4j
knife4j的前身是swagger-bootstrap-ui,取名knife4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍,更名也是希望把她做成一个为Swagger接口文档服务的通用性解决方案,不仅仅只是专注于前端Ui前端。原创 2021-11-23 10:00:00 · 2069 阅读 · 2 评论 -
SpringBoot MongoTemplate的基本使用方法
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。原创 2021-11-22 10:47:16 · 3612 阅读 · 0 评论 -
Java基础(三) : == 和 equals 的区别
equals 和 == 最大的区别是一个是方法一个是运算符。== : 如果比较的对象是基本数据类型,则比较的是数值是否相等;如果比较的是引用数据类型,则比较的是对象的地址值是否相等。equals() : 用来比较方法两个对象的内容是否相等。注意:equals方法不能用于基本数据类型的变量,如果没有对 equals 方法进行重写,则比较的是引用类型的变量所指向的对象的地址。...原创 2021-10-11 18:06:50 · 145 阅读 · 0 评论 -
Java基础(二) : & 和 && 的区别
&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是 true 整个表达式的值才是 true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行 运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 ...原创 2021-10-11 18:04:05 · 239 阅读 · 0 评论 -
Java基础(一) : new 一个对象的过程和 clone 一个对象的过程区别
new 操作符的本意是分配内存。程序执行到 new 操作符时,首先去看 new 操作符后面的类型,因为知道了类型, 才能知道要分配多大的内存空间。分配完内存之后,再调用构造函数,填充对象的各个域,这一步叫做对象的初始化构造方法返回后,一个对象创建完毕,可以把他的引用(地址)发布到外部,在外部就可以使用这个引用操纵这个对象。clone 在第一步是和 new 相似的,都是分配内存,调用 clone 方法时,分配的内存和原对象(即调用 clone 方法 的对象)相同,然后再使用...原创 2021-10-11 09:37:07 · 478 阅读 · 0 评论 -
Spring Cloud Gateway:自定义全局过滤器GlobalFilter
@Slf4j@Componentpublic class WxAuthFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { //1.获取request ServerHttpRequest request = exchange.ge.原创 2021-09-27 18:06:19 · 697 阅读 · 0 评论 -
Spring Boot中使用注解@ConfigurationProperties
一、作用使用@ConfigurationProperties能够批量注入配置文件的属性。二、@ConfigurationProperties注解与@Value注解区别1.@ConfigurationProperties能够批量注入配置文件的属性。2.@Value只能一个个指定。3.@ConfigurationProperties支持松散绑定。@ConfigurationProperties(prefix...原创 2021-09-24 11:51:56 · 1218 阅读 · 0 评论 -
将本地JAR包上传到maven私服
一、首先需要先将项目打包成jar二、创建model-to-maven.th脚本#!/bin/shecho "开始发布gaia-manager-model..."groupId=com.fgi.egbaseartifactId=egbaseverion=1.0.4.0-SNAPSHOTfileName=D:/test/egbase-1.0.4.0-SNAPSHOT.jarmvnUrl=http://192.168.xxx.xxx:8081/repository/maven-sn.原创 2021-09-09 11:32:50 · 1513 阅读 · 0 评论 -
SpringBoot通过@Scheduled实现定时任务
1.开启定时任务开启定时任务只需要在 Spring Boot 的启动类上声明@EnableScheduling即可,实现代码如下:@SpringBootApplication@EnableScheduling // 开启定时任务public class ScheduledTaskDemoApplication { public static void main(String[] args) { SpringApplication.run(Sche...原创 2021-09-06 09:45:20 · 430 阅读 · 0 评论 -
自定义校验注解实现ConstraintValidator
一、步骤1.创建自定义注解 IdCard@Constraint指定校验类。 除了自定义的message、require属性外,下面的groups和payload也是必须添加的。/** * 用于校验身份证的注解 */@Target({ElementType.METHOD,ElementType.FIELD,ElementType.ANNOTATION_TYPE,ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)@Doc.原创 2021-08-30 14:40:46 · 862 阅读 · 0 评论 -
基于SpringBoot Starter和Mybatis-plus实现的代码生成器
1.执行步骤2.执行结果:3.项目地址https://gitee.com/chaoren_me/CodeGenerator.git原创 2021-08-27 17:58:39 · 135 阅读 · 0 评论 -
对Java Serializable(序列化)的理解和总结
1.什么是Serializable接口一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化2.什么是序列化序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。3.为什么要序列化对象 ① 把对象转换为字节序列的过程称为对象的序列化。 ② 把字节序列恢复为对象的过程称为对象的反序列化。4.什么情况下需要...原创 2021-08-25 18:01:57 · 251 阅读 · 0 评论 -
SpringBoot常用注解(持续更新)
一、使用注解的优势: 1.采用纯java代码,不在需要配置繁杂的xml文件 2.在配置中也可享受面向对象带来的好处 3.类型安全对重构可以提供良好的支持 4.减少复杂配置文件的同时亦能享受到springIoC容器提供的功能二、常用SpringBoot注解 1.@SpringBootApplication:启动类注解,包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。...原创 2021-08-25 14:04:29 · 383 阅读 · 0 评论 -
Spring中自定义Log注解的详解案例
1.自定义Log注解@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface Log { /** * 操作内容 * * @return */ String content(); /** * 操作日志类型 * * @return */ OperatorTypeEnum type();原创 2021-08-25 11:19:58 · 2344 阅读 · 4 评论 -
Spring中的ApplicationListener的使用详解案例(观察者模式)
一、前言ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成ApplicationContext的事件机制。如果容器中存在ApplicationListener的Bean,当ApplicationContext调用publishEvent方法时,对应的Bean会被触发。这一过程是典型的观察者模式的实现。一、目的 在开发过程中,需要涉及跨平台数据推送,因此使用自定义事件。二、...原创 2021-08-24 17:28:50 · 1325 阅读 · 4 评论 -
使用Spring Initializer 快速创建Spring Boot 项目
1.创建一个Maven工程File -> new -> Project2.选择Spring Initializer,点击next3.输入项目的目录结构、目录名称和选择Jdk 8,点击next4.选择SpringBoot版本,添加所需的的插件,点击next5.确认相关信息无误后,点击Finish6.点击pom文件,查看Springboot的相关依赖7.编写HelloController类@Controllerpublic class ...原创 2021-08-23 17:04:50 · 500 阅读 · 0 评论 -
Java实现Sm4加密和解密
/** * 国密SM4分组密码算法工具类(对称加密) * <p>GB/T 32907-2016 信息安全技术 SM4分组密码算法</p> * <p>SM4-ECB-PKCS5Padding</p> */public class Sm4Util { private static final String ALGORITHM_NAME = "SM4"; private static final String ALGORITHM_ECB_PKC.原创 2021-08-23 16:08:24 · 16825 阅读 · 14 评论 -
@Autowired注解与@Resource注解的区别与用法
一、@Autowired 与@Resource的区别:1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。2.@Autowired默认按类型(byType)装配(这个注解是属于spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:@Aut原创 2021-08-23 15:49:59 · 2425 阅读 · 1 评论 -
全局异常处理@RestControllerAdvice
在开发中出现异常后,可能需要一个统一处理的地方,来处理程序出现的异常,针对不同的异常做不同的处理,这里我们通过@ExceptionHandler注解来实现。1.自定义异常/** * 系统异常,自定义 * */public class BusinessException extends RuntimeException { private int code; /** * 继承exception,加入错误状态值 * * @par...原创 2021-08-23 15:33:31 · 394 阅读 · 0 评论