- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 消除带有触摸UI的浏览器上的点击延迟
注意:截至 2015 年底,大多数移动浏览器——尤其是 Chrome 和 Safari——不再有 300 毫秒的触摸延迟,因此 fastclick 对较新的浏览器没有任何好处,并且可能会在您的应用程序中引入。移动浏览器上物理点击和触发事件之间的 300 毫秒延迟。目的是让您的应用程序感觉更少滞后和更灵敏,同时避免对您当前逻辑的任何干扰。从您点击按钮触发点击事件开始,移动浏览器将等待大约300毫秒。这样做的原因是浏览器正在等待查看您是否真的在执行双击。FastClick是一个简单易用的库,用于消除。
2022-09-27 10:17:09 289 1
原创 注解@RestControllerAdvice用法途
是一个组合注解,由、组成,而继承了@Component,因此本质上是个,用于定义,和方法,适用于所有使用方法。@ControllerAdvice可以指定 Controller 范围basePackageClasses: 是 basePackages 的一种变形,指定一个或多个 Controller 类,这些类所属的包及其子包下的所有 Controller 都被该 @ControllerAdvice 管理assignableTypes: 指定一个或多个 Controller 类,这些类被该 @C
2022-09-23 16:26:29 18751
原创 @Valid注解数据校验用法
自定义个异常类,方便我们处理 GET 请求(GET 请求参数中一般是没有实体对象的,所以不能使用 @Valid),当请求验证失败时,手动抛出自定义异常,交由全局异常处理。} }定义一个返回信息的枚举类,方便我们快速响应信息,不必每次都写返回消息和响应码。SUCCESS(1000 , "请求成功") , PARAMETER_ERROR(1001 , "请求参数有误!") , UNKNOWN_ERROR(9999 , "未知的错误!");} }创建用于返回调用方的响应信息的实体类。
2022-09-23 13:17:16 9982
原创 Java诊断工具-Arthas
有了arthas这种神器可以线上输出日志,但是watch语法还是不够简单,因此Idea arthas 插件就此横空出世,插件安装成功后,只需要将光标放置在具体的类、字段、方法上面 右键选择需要执行的命令,部分会有窗口弹出、根据界面操作获取命令;方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测。trace:方法内部调用路径,并输出方法路径上的每个节点上耗时。方法内部调用路径,并输出方法路径上的每个节点上耗时。stack:输出当前方法被调用的调用路径。
2022-09-18 13:56:57 1083
原创 利用BigDecimal类巧妙处理Double类型精度丢失
我们已经明白为什么精度会存在丢失现象,那么我们就应该知道,当某个业务场景对double数据的精度要求非常高时,就必须采取某种手段来处理这个问题,这也是BigDecimal为什么会被广泛应用于金额支付场景中的原因啦。精度丢失的问题是在其他计算机语言中也都会出现,float和double类型的数据在执行二进制浮点运算的时候,并没有提供完全精确的结果。可以看到,使用方法一的构造函数仍然出现了精度丢失的问题,而方法二和方法三符合我们的预期,为什么会这样呢? 方法中的参数也必须是BigDecimal的对象。
2022-09-16 10:39:02 1944
原创 spring boot 项目打成的 jar 包无法获取 srcmainresources 下文件
resource.getFile() 资源本身在文件系统上可用,即它不能嵌套在jar文件中。这就是为什么当您在STS中运行应用程序时,它可以工作,但一旦您构建了应用程序并从可执行jar运行它,它就不能工作。这将可以使您能够读取到资源的内容,而不管它位于何处。
2022-09-13 10:23:51 638
原创 CSS结构伪类选择器
CSS 中的结构伪类选择器是根据 HTML 页面中元素之间的关系来定位 HTML 元素,从而减少对 HTML 元素的 id 属性和 class 属性的依赖。选择器功能描述作为父元素的第一个子元素的元素E。与E:nth-child(1)等同作为父元素的最后一个子元素的元素E。与E:nth-last-child(1)等同E:root选择匹配元素E所在文档的跟元素。在HTML文档中,跟元素始终是html,此时该选择器与html类型选择器匹配的内容相同。选择父元素E的第N个子元素F。
2022-09-12 19:04:43 303
原创 物理删除转逻辑删除
在工作中,很多业务场景下,我们删除数据的时候都采用的是逻辑删除,而不是真正的将数据从物理上直接抹除。加上这个注解再执行BaseMapper的删除方法时,删除方法会变成修改。Mybatis-plus为我们提供了一个注解@TableLogic。我们只需要将这个注解加在逻辑字段上,其他的方法都无需变更。...
2022-08-01 11:19:01 315
原创 IDEA命令行缩短器-解决命令行过长无法启动项目
什么意思呢,他说命令行过长,直接停止了我项目的运行,在百度上找到了解决方案。今天在工作的时候去启动项目,发现项目启动不了,原因是。
2022-07-25 20:13:40 4555
原创 UML类图介绍
统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。在UML类图中,类使用包含类名、属性(fie
2022-07-08 22:34:26 292
原创 软件设计原则概念
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据6条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。**对扩展开发,对修改关闭。**在程序需要进行扩展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生的实现类来进行扩展,当软件需要发生变化时,只需
2022-07-08 16:39:52 88
原创 MySQL基础回顾
查询查询所有数据库查询当前数据库创建删除使用DDL - 表操作查询当前数据库所有表查询表结构查询指定表的建表语句DDL - 表操作 - 创建例:添加字段案例:为emp表增加一个新的字段 “昵称” 为 nickname,类型为varchar(20)修改数据类型修改字段名和字段类型案例:将emp表的nickname字段修改为username,类型为varchar(30)删除字段案例:将emp表的字段username 删除修
2022-07-07 16:27:36 138
原创 Swagger的使用
使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。官网:https://swagger.io/knife4j 是为Java MVC框架集成Swagger生成Api文档的增强解决方案。导入knife4j的maven坐标导入knife4j相关配置类设置静态资源,否则接口文档页面无法访问(如果你配置了拦截器),那么你需要将这些路径加入白名单在LoginCheckFilter
2022-07-05 16:17:00 320
原创 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 1011 1
原创 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 174
原创 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 276
原创 idea的配置,提高效率
[TOC]一. 安装插件Codota 代码智能提示插件只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。原因是它学习了我的项目代码,总结出了我的代码偏好。Key Promoter X 快捷键提示插件每次都会在右下角弹窗提示,帮助我们快速熟悉快捷键。CodeGlance 显示代码缩略图插件当代码很多的时候,方便查看,很有用。Lombok 简化臃肿代码插件实体类中的get/set/构造/toString/hashCode等方法,都不需要我们再手动写了Ali
2022-05-27 21:41:24 378
原创 SpringCache整合Redis实现项目缓存解决方案
文章目录Spring Cache 是什么?为什么要使用SpringCacheSpring Cache 常用注解Spring Cache的使用注意事项添加配置类,设置序列化方式Spring Cache 是什么?首先我们需要明确一点:Spring Cache 不是一个具体的缓存实现方案,而是一个对缓存使用的抽象,类似Java的JDBC。是定义了一套规范。第三方缓存需要实现这套规范,才能通过Spring API使用缓存功能。它利用了AOP,实现了基于注解的缓存功能,并且进行了合理的抽象,业务代码不用关心底层是
2022-05-27 21:14:20 784
原创 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 1109
原创 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 578
原创 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 128
原创 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 1419
原创 实现文件上传下载功能
先浅看一下文件上传三要素:表单提交方式:post (get方式提交有大小限制,post没有)表单的enctype属性:必须设置为multipart/form-data表单必须有文件上传项:file文件上传介绍服务端要接收客户端页面上传的文件,通常都会使用Apache的两个组件:commons-fileuploadcommons-ioSpring框架在spring-web包中对文件上传进行了封装,大大简化了服务端代码,我们只需要在Controller的方法中声明一个Multipar.
2022-05-13 21:44:18 3995
原创 实现登陆校验- 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 238 1
原创 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 1300
原创 如何使用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 455
原创 SpringBoot静态资源目录配置
<h4 id="静态资源">静态资源</h4><blockquote><p>SpringBoot 遵循 约定大于配置 这一守则,它为我们提供了默认的 静态资源 文件夹,可以直接访问SpringB
2022-05-11 11:28:20 2894
原创 Redis的过期数据会被立马删除吗?
<h3 id="redis的过期数据会被立马删除吗?">Redis的过期数据会被立马删除吗?</h3><p>答:不会被立马删除。Redis有两种删除过期数据的策略</p><ul><li>定期选取
2022-04-22 19:31:28 2801
原创 关于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 523
原创 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 6431 8
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人