![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 73
天猫精灵998
这个作者很懒,什么都没留下…
展开
-
如何在 JB 全家桶中使用 VS Code 的快捷键
JB 全家桶,例如 IDEA、WebStorm、GoLand 等支持多种 keymap,如要使用 VS Code 的快捷键,只需要安装对应的 Keymap 即可:安装后应用即可:同理主题也可以安装,在 JB 全家桶中推荐使用 One Dark Theme,安装完成后点击 apply 即可:推荐安装的插件:Atom Material IconsGitToolBoxMaven HelperOne Dark ThemeSearch In RepositoryVSCode Keymap原创 2022-01-07 21:51:20 · 962 阅读 · 0 评论 -
JS、Java、Go 实现反转一维数组
Java 实现:public class ReverseArray { public void reverse(int[] arr) { int i = 0, j = arr.length - 1; while (j > i) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i++;原创 2021-12-25 18:17:46 · 637 阅读 · 0 评论 -
Java 中的 toString、String.valueOf 和 (String) 强制转换
在开发中经常会用到这三种方法,但这三种方法存在一定区别,这边总结下。1. 基本类型首先基本类型没有 toString 方法,这个时候推荐使用 String.valueOf :public void test1() { int a = 0; String b = String.valueOf(a); System.out.println(b);}然后基本类型是不能强制转换的:public void test1() { int a = 0; String b = (String)原创 2021-08-14 23:30:03 · 1074 阅读 · 0 评论 -
【踩坑经历】Java Long 类型传给前端损失精度的问题
最近在做一个 SpringBoot + Vue 的项目,持久层框架用的是 MyBatis-Plus,然后遇到了一个问题,一起来看下怎么回事。这个项目就是一个文章收藏器,可以收藏一些技术文章,然后可以选择星标,以便查找这篇文章。那么点击星标的按钮,实际上就是调了后端一个接口,更新了数据库中相应字段。每一个列表的字段如下:可以看到,标记星标的字段就是 isFavorite ,没有星标的时候是 0 ,星标之后变成 1 。同时这边还有个 id 字段,这个字段是由 MyBatis-Plus 插入数据库时自动原创 2021-06-21 12:09:06 · 1432 阅读 · 3 评论 -
SpringBoot 异常处理
之前在 SpringBoot 参数校验 中已经简单介绍了异常的处理,在这篇文章中再系统总结一下。1. Controller 异常捕获在一个类上面加 @ControllerAdvice 或者 @RestControllerAdvice 注解,就是定义该类为异常处理类。如果不带任何参数,那么这个类就是全局异常处理类,例如在 SpringBoot 参数校验 中我们创建的 GlobalExceptionHandler 。有时候如果不希望捕获全局异常,可以通过给注解传递参数,指定处理的 Controller 范围原创 2021-05-30 23:22:58 · 459 阅读 · 4 评论 -
SpringBoot 封装统一响应体(二)
在 SpringBoot 封装统一响应体(一) 中介绍了使用统一结果类 ServerResponse 来封装统一响应体对象,需要用类似 ServerResponse.ok(data) 的形式进行响应。在 Spring 3.2 中,新增了 @ControllerAdvice ,是一个 Controller 增强器,可对 Controller 中被 @RequestMapping 注解的方法加一些逻辑处理,最常用的就是异常处理。这篇文章介绍一种通过 @ControllerAdvice 和基于 AOP 实现的统原创 2021-05-27 23:20:54 · 3126 阅读 · 1 评论 -
SpringBoot 日志配置
做前端开发可能对日志接触不多,但是日志对后端开发重要性毋庸置疑,它对于监控应用的运行状态、问题排查等都有非常重要的意义。这篇文章简单介绍一下 SpringBoot 日志的配置。1. 日志框架对比 slf4j、log4j、logback、log4j2slf4jslf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用(如log4j、logback)log4jog4j是apache实现的一个开源日志组件。通过使用log4j原创 2021-05-22 23:10:47 · 290 阅读 · 1 评论 -
SpringBoot 封装统一响应体(一)
在上一篇 SpringBoot 参数校验 中我们对参数校验添加了异常处理,但是还是有不规范的地方,没有用统一响应体进行返回,在这篇文章中介绍如何封装统一响应体。关于统一响应体的封装,没有一个标准答案,我在各种技术社区看了一遍,汇总了一个复用性比较好的方案。1. 添加结果类枚举在项目目录下面建一个 responseEntity 的 package,然后在里面建一个 ResultEnum 枚举类,添加如下代码:这边介绍一下枚举类的用法。枚举类的作用实际上就是定义常量,如果不使用枚举类,通常采用静态常量原创 2021-05-22 19:45:16 · 2256 阅读 · 1 评论 -
SpringBoot 参数校验
在上一篇 MyBatis-plus 初体验 中已经简单实现了 MyBatis-Plus 数据库查询。我们知道 CURD 离不开前后端的数据交互,因此参数校验是必不可少的。这篇主要讲一下 SpringBoot 参数校验。在 Web 开发中经常需要对前端传过来的参数进行校验,例如格式校验、非空校验等,基本上每个接口都需要进行校验。如果使用常规的 IF ELSE 进行校验,随着参数越来越多,校验逻辑的冗余度也越来越高,导致维护性变差。在 Java 中定义了一套基于注解的数据校验规范 Bean Validatio原创 2021-05-21 17:30:35 · 791 阅读 · 1 评论 -
MyBatis-plus 初体验
众所周知,本人非常喜欢折腾。作为一个前端,却热衷于研究后端框架,用过 ThinkPHP、Python Flask、egg.js 写过 CURD,最近还不甘心,想用 SpringBoot 来写 CURD。想要写 CURD ,就离不开持久层框架 (ORM) 。搞 Java 后端开发的都知道,Java 技术栈曾经广泛使用的持久层框架是 Hibernate ,缺点是使用非常复杂,然后最近比较火的是 MyBatis ,虽然简单了不少,但这玩意是通过 xml 去拼接 sql 语句,因此需要手写大量的 xml 文件。这原创 2021-05-16 12:59:12 · 199 阅读 · 1 评论 -
Spring 中的 @Override 和 @Autowired
看别人写的代码,经常会用到 @Override 和 @Autowired 这两个注解。这边总结一下这两个注解的作用。1. Override首先,@Override 注解是伪代码,表示子类重写父类的方法。这个注解不写也是可以的,但是写了有如下好处:1. 可以当注释用,方便阅读(注解很重要的一个作用就是注释);2. 编译器和 IDE 可以验证 @Override 下面的方法名是否是父类中所有的,如果没有的话就会报错。如果没有加 @Override ,而子类中的方法名又写错了,这个时候编译器是可以编译通过原创 2021-04-29 18:36:41 · 2075 阅读 · 1 评论 -
解决 SpringBoot 项目启动报错 Failed to configure a DataSource: ‘url‘ attribute is not specified and no embed
本人使用阿里云 Java Initializr 脚手架搭建了 SpringBoot 项目,在启动的时候出现报错信息:Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.显然是 application.properties 中没有配置datasource的一些相关属性,例如:地址值,数据库驱动,用户名,密码等等。Spring原创 2021-04-07 21:55:46 · 9268 阅读 · 2 评论 -
Java 单元测试
初学 Java 的时候,一般都会在类中写 main 方法,比较麻烦,但实际上一个类是可以不需要 main 方法的。这边介绍 Java 中的 Junit 单元测试。如下所示,使用 @Test 注解,就可以不用写 main 方法。使用需要导入 org.junit.Test 依赖。package com.company;import org.junit.Assert;import org.junit.Test;public class MyClass { public int add(int pa原创 2021-03-14 15:29:14 · 85 阅读 · 2 评论