后端
文章平均质量分 66
JAVA
oah1021
这个作者很懒,什么都没留下…
展开
-
注解@RestControllerAdvice用法途
是一个组合注解,由、组成,而继承了@Component,因此本质上是个,用于定义,和方法,适用于所有使用方法。@ControllerAdvice可以指定 Controller 范围basePackageClasses: 是 basePackages 的一种变形,指定一个或多个 Controller 类,这些类所属的包及其子包下的所有 Controller 都被该 @ControllerAdvice 管理assignableTypes: 指定一个或多个 Controller 类,这些类被该 @C原创 2022-09-23 16:26:29 · 18086 阅读 · 0 评论 -
@Valid注解数据校验用法
自定义个异常类,方便我们处理 GET 请求(GET 请求参数中一般是没有实体对象的,所以不能使用 @Valid),当请求验证失败时,手动抛出自定义异常,交由全局异常处理。} }定义一个返回信息的枚举类,方便我们快速响应信息,不必每次都写返回消息和响应码。SUCCESS(1000 , "请求成功") , PARAMETER_ERROR(1001 , "请求参数有误!") , UNKNOWN_ERROR(9999 , "未知的错误!");} }创建用于返回调用方的响应信息的实体类。原创 2022-09-23 13:17:16 · 9601 阅读 · 0 评论 -
Git 误提交.idea文件夹解决办法
git上误传了.idea文件夹解决办法如下:git rm -rf --cached .idea提交并上传git commit -m '忽略误提交的.idea文件夹'重新提交到远程仓库(这里以提交到master分支为例)git push -u origin master注意:如果是多模块,一定要在.gitignore文件上加上**/.ideaend…...原创 2022-05-25 18:10:42 · 968 阅读 · 0 评论 -
Nginx下载和安装
[toc]环境:Centos7、Nginx1.22.0Nginx下载和安装安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel下载Nginx安装包wget https://nginx.org/download/nginx-1.22.0.tar.gz如果没有wget,请先安装wgetyum -y install wget解压tar -zxvf nginx-1.22.0.tar.gz进入ngin原创 2022-05-29 19:05:32 · 963 阅读 · 1 评论 -
Swagger的使用
使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。官网:https://swagger.io/knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案。导入knife4j的maven坐标导入knife4j相关配置类设置静态资源,否则接口文档页面无法访问(如果你配置了拦截器),那么你需要将这些路径加入白名单在LoginCheckFilter原创 2022-07-05 16:17:00 · 281 阅读 · 0 评论 -
idea的配置,提高效率
[TOC]一. 安装插件Codota 代码智能提示插件只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。原因是它学习了我的项目代码,总结出了我的代码偏好。Key Promoter X 快捷键提示插件每次都会在右下角弹窗提示,帮助我们快速熟悉快捷键。CodeGlance 显示代码缩略图插件当代码很多的时候,方便查看,很有用。Lombok 简化臃肿代码插件实体类中的get/set/构造/toString/hashCode等方法,都不需要我们再手动写了Ali原创 2022-05-27 21:41:24 · 354 阅读 · 0 评论 -
git的使用
下载GitGit 官网:https://git-scm.com/什么是Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是[Linus Torvalds](https://baike.baidu.com/item/Linus Torvalds/9336769)为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git的使用当下载完Git之后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。在原创 2022-05-21 22:35:56 · 543 阅读 · 0 评论 -
实现登陆校验- Filter过滤器
Q:这个人没有登陆,我不想让ta访问我的页面A:简单实现先创建一个Filter过滤器起名为LoginCheckFilter ,然后实现Filter 接口/** * @author JUNHAO * 检查用户是否已经登陆 */@WebFilter(filterName = "LoginCheckFilter", urlPatterns = "/*")@Slf4j@Componentpublic class LoginCheckFilter implements Filter {原创 2022-05-13 17:50:59 · 210 阅读 · 1 评论 -
实现文件上传下载功能
先浅看一下文件上传三要素:表单提交方式:post (get方式提交有大小限制,post没有)表单的enctype属性:必须设置为multipart/form-data表单必须有文件上传项:file文件上传介绍服务端要接收客户端页面上传的文件,通常都会使用Apache的两个组件:commons-fileuploadcommons-ioSpring框架在spring-web包中对文件上传进行了封装,大大简化了服务端代码,我们只需要在Controller的方法中声明一个Multipar.原创 2022-05-13 21:44:18 · 3833 阅读 · 0 评论 -
java8新特性
Java8 内置的四大核心函数式接口Consumer< T > : 消费型接口 void accept(T t);消费,有去无回,没有返回值/** * 消费型接口 */@Testvoid test() { happy(10000,m -> System.out.println("Nugoah喜欢大宝剑,每次消费" + m + "元"));}void happy(double money, Consumer<Do原创 2022-05-21 22:34:23 · 105 阅读 · 0 评论 -
Long类型数据,JS精度丢失
什么问题今天做了一个项目,在项目中数据库用bigint类型存储主键,java实体类中用Long类型来存储对应的属性。这个时候前台通过ajax请求获取json数据时,使用了jackson来转换。但是JS中number类型存储的长度小于Long,出现了丢失精度的问题。为什么出现问题主要是存储二进制时小数点的偏移量最大为52位,最多可以表达的位数是2^53=9007199254740992,对应科学计数尾数是 9.007199254740992,这也是 JS 最多能表示的精度。它的长度是 16,而long原创 2022-05-12 14:34:04 · 1248 阅读 · 0 评论 -
Java诊断工具-Arthas
有了arthas这种神器可以线上输出日志,但是watch语法还是不够简单,因此Idea arthas 插件就此横空出世,插件安装成功后,只需要将光标放置在具体的类、字段、方法上面 右键选择需要执行的命令,部分会有窗口弹出、根据界面操作获取命令;方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测。trace:方法内部调用路径,并输出方法路径上的每个节点上耗时。方法内部调用路径,并输出方法路径上的每个节点上耗时。stack:输出当前方法被调用的调用路径。原创 2022-09-18 13:56:57 · 1049 阅读 · 0 评论 -
利用BigDecimal类巧妙处理Double类型精度丢失
我们已经明白为什么精度会存在丢失现象,那么我们就应该知道,当某个业务场景对double数据的精度要求非常高时,就必须采取某种手段来处理这个问题,这也是BigDecimal为什么会被广泛应用于金额支付场景中的原因啦。精度丢失的问题是在其他计算机语言中也都会出现,float和double类型的数据在执行二进制浮点运算的时候,并没有提供完全精确的结果。可以看到,使用方法一的构造函数仍然出现了精度丢失的问题,而方法二和方法三符合我们的预期,为什么会这样呢? 方法中的参数也必须是BigDecimal的对象。原创 2022-09-16 10:39:02 · 1827 阅读 · 0 评论 -
jsonpath - 使用 JSONPath 解析 JSON
第三个选择是实现你自己的谓词} };原创 2022-09-13 12:32:47 · 1115 阅读 · 1 评论 -
JAVA 测试程序代码运行时间
【代码】JAVA 测试程序代码运行时间。原创 2022-09-13 12:31:35 · 1397 阅读 · 0 评论 -
spring boot 项目打成的 jar 包无法获取 srcmainresources 下文件
resource.getFile() 资源本身在文件系统上可用,即它不能嵌套在jar文件中。这就是为什么当您在STS中运行应用程序时,它可以工作,但一旦您构建了应用程序并从可执行jar运行它,它就不能工作。这将可以使您能够读取到资源的内容,而不管它位于何处。原创 2022-09-13 10:23:51 · 605 阅读 · 0 评论 -
MySQL基础回顾
查询查询所有数据库查询当前数据库创建删除使用DDL - 表操作查询当前数据库所有表查询表结构查询指定表的建表语句DDL - 表操作 - 创建例:添加字段案例:为emp表增加一个新的字段 “昵称” 为 nickname,类型为varchar(20)修改数据类型修改字段名和字段类型案例:将emp表的nickname字段修改为username,类型为varchar(30)删除字段案例:将emp表的字段username 删除修原创 2022-07-07 16:27:36 · 100 阅读 · 0 评论 -
Centos7安装MySQL教程
卸载MariaDB在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。CentOS 7 及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。如果直接安装MySQL,会和MariaDB的文件冲突。因此,我们需要先卸载自带的MariaDB,再安装MySQL。查看版本rpm -qa|grep mariadb卸载rpm -e --nodeps 文件名检查是否卸载干净,可继续执行查看版本命令卸载MySQL如果你之前安装过MySQL请先卸载再原创 2022-05-29 09:50:37 · 243 阅读 · 0 评论 -
Mysql配置主从复制,实现读写分离
[TOC]开始之前假设你有两台服务器,并且都部署了Mysql,192.168.45.100(主)、192.168.45.101(从)MySQL主从复制介绍MySQL主从复制是一个异步的复制过程,底层是基于MySQL数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。 MySQL原创 2022-05-29 13:04:47 · 157 阅读 · 0 评论 -
SpringBoot静态资源目录配置
<h4 id="静态资源">静态资源</h4><blockquote><p>SpringBoot 遵循 约定大于配置 这一守则,它为我们提供了默认的 静态资源 文件夹,可以直接访问SpringB原创 2022-05-11 11:28:20 · 2859 阅读 · 0 评论 -
SpringCache整合Redis实现项目缓存解决方案
文章目录Spring Cache 是什么?为什么要使用SpringCacheSpring Cache 常用注解Spring Cache的使用注意事项添加配置类,设置序列化方式Spring Cache 是什么?首先我们需要明确一点:Spring Cache 不是一个具体的缓存实现方案,而是一个对缓存使用的抽象,类似Java的JDBC。是定义了一套规范。第三方缓存需要实现这套规范,才能通过Spring API使用缓存功能。它利用了AOP,实现了基于注解的缓存功能,并且进行了合理的抽象,业务代码不用关心底层是原创 2022-05-27 21:14:20 · 754 阅读 · 0 评论 -
Redis的过期数据会被立马删除吗?
<h3 id="redis的过期数据会被立马删除吗?">Redis的过期数据会被立马删除吗?</h3><p>答:不会被立马删除。Redis有两种删除过期数据的策略</p><ul><li>定期选取原创 2022-04-22 19:31:28 · 2734 阅读 · 0 评论 -
Redis命令基本使用
Redis的概述Redis (Remote Dictionary Server)即远程字典服务,是单线程的多路IO复用是一个开源的内存数据结构存储,用作数据库、缓存、消息代理Redis 是用ANSI C编写的,推荐使用Linux进行部署。Windows版本没有官方支持。NoSql:no only sql(不仅仅是sql),泛指非关系型数据库,没有固定的查询语言Redis能干嘛?内存存储,持久化(rdb,aof)效率高,可以用于高速缓存发布订阅系统地图信息分析计时器、计数器(原创 2022-05-21 22:32:38 · 1329 阅读 · 0 评论 -
关于Mybatis的配置文件
1.在resources目录下创建一个(SqlMapConfig.xml)Mybatis-Config.xml文件,用于配置mybatis的主配置文件<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"&原创 2021-12-05 16:29:15 · 499 阅读 · 0 评论 -
springmvc配置thymeleaf视图解析器
引入thymeleaf的依赖 <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> <version>3.0.13.RELEASE</version> </dependency>2. 配置springmvc视图解析<!--原创 2021-12-05 16:22:25 · 6155 阅读 · 8 评论 -
物理删除转逻辑删除
在工作中,很多业务场景下,我们删除数据的时候都采用的是逻辑删除,而不是真正的将数据从物理上直接抹除。加上这个注解再执行BaseMapper的删除方法时,删除方法会变成修改。Mybatis-plus为我们提供了一个注解@TableLogic。我们只需要将这个注解加在逻辑字段上,其他的方法都无需变更。...原创 2022-08-01 11:19:01 · 292 阅读 · 0 评论 -
如何使用Mybatis-Plus
Mybatis-Puls (下文简称MP)如何在SpringBoot中使用1、首先,引入相关的依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version>原创 2022-05-11 11:40:26 · 412 阅读 · 0 评论