java
文章平均质量分 71
暴力小熊
这个作者很懒,什么都没留下…
展开
-
springboot 项目jar包后上传到 服务器目录
当我们项目上传文件事,大点项目会把文件上传到对象存储或是自己的文件服务器。小项目会存储到服务器上但又不能存储到项目当中,存储到项目当中每次更新项目时,上传的文件时文件对丢失,所以我们都会存储到项目jar外,服务器上的,这样文件就不会每次更新项目就丢失了。当然项目拦截器等都要放行也要放行,如不验证token等。对于jar包因为我们无法操作jar包内容,所以我们只能将文件存放在别的位置,与jar包同级的目录是一个不错的选择。此时可以上传但是通过路径我们无法访问文件。...原创 2022-07-16 10:07:54 · 725 阅读 · 1 评论 -
idea 实用 高效 插件 分享 记录
说明:自动部署工具说明:汉化说明:代码crud 模板说明: 在mapper接口方法和mapper XML文件之间来回切换的插件说明: idea激活工具说明: yapi生成工具说明:热部署工具说明: mybati打印拼接参数工具最好用的一个,安装上之后,在tool中打开MyBatis Log,就会在idea下方出现一个MyBatis Log界面,之后日志中出现的sql语句会自动出现在这里(只有窗口打开之后的sql);说明:yapi生成工具说明:安装完成后在右侧会有 RestServices 窗口,打开会显示原创 2022-07-01 16:46:16 · 379 阅读 · 0 评论 -
java开发中 防止重复提交的几种方案
对于重复提交的问题,主要由于重复点击或者网络重发请求, 我要先了解产生原因几种方式:对于重复提交的问题 主要涉及到时 问题,那么先说一下什么是幂等。幂等:F(F(X)) = F(X)多次运算结果一致;简单点说就是对于完全相同的操作,操作一次与操作多次的结果是一样的。在开发中,我们都会涉及到对数据库操作。例如:4). google cache 代码实现 注解方式 Single lockpom.xml 引入配置文件 .yml实现代码使用:5)redispom.xml 引入.yml文件 r原创 2022-07-01 16:08:41 · 8574 阅读 · 2 评论 -
订单超时 取消订单 的几种实现方案总结与对比
在开发中,往往会遇到一些关于延时任务的需求。例如:生成订单 30 分钟未支付,则自动取消;生成订单 60 秒后,给用户发短信。此处就涉及到 和 等问题。这里只说 方案 思路 和 优缺点,代码不做实现。........................原创 2022-06-24 14:42:00 · 2710 阅读 · 0 评论 -
Java序列化JSON时long型数值返回前端页面,会出现精度丢失的问题
超过17位的最后两位直接丢失,导致拿着丢失精度之后的Id再去后端查数据根本查不到。java中得long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值).在实体类相应字段,使用ToStringSerializer的注解,让系统序列化时,保留相关精度解决办法(二): 比较完美,强烈推荐使用使用全局配置,将转换时实现自动ToStringSerializer序列化...原创 2022-06-22 16:52:39 · 1484 阅读 · 2 评论 -
Springboot2.0防止XSS攻击的几种方式
Springboot2.0防止XSS攻击的几种方式Springboot2.0防止XSS攻击的几种方式在平时做项目代码开发的时候,很容易忽视XSS攻击的防护,网上有很多自定义全局拦截器来实现XSS过滤,其实不需要这么麻烦,SpringBoot留有不少钩子(扩展点),据此我们可以巧妙地实现全局的XSS过滤防止XSS攻击,一般有两种做法:1. 转义使用工具类HtmlUtils实现2. 过滤将敏感标签去除jsoup实现了非常强大的clean敏感标签的功能转义 做法的三种实现:转义方法一:注册自定转载 2022-03-17 10:26:03 · 1512 阅读 · 0 评论 -
git仓库 初始化命令
命令行指令Git 全局设置git config --global user.name “xx”git config --global user.email xxx@xx.com"创建新版本库git clone git@code.aliyun.com:xx/xx.gitcd mydemotouch README.mdgit add README.mdgit commit -m “add README”git push -u origin master已存在的文件夹或 Git 仓库cd原创 2022-03-07 09:39:34 · 2938 阅读 · 0 评论 -
idea easyCode 插件 tk.mybatis+pagehelper 模板
简单粗暴 无需多说 上截图 上代码Result.java 返回工具类@Datapublic class Result<T> { private int code; private String msg; private T data; public Result(int code, String msg) { this.code = code; this.msg = msg; } public Result(int code, Strin原创 2022-01-26 16:55:42 · 759 阅读 · 1 评论 -
idea EasyCode 插件 的 mybatis 模板
idea EasyCode 的mybatis 模板原创 2022-01-20 18:02:04 · 755 阅读 · 0 评论 -
CentOS7.5+ docker安装jenkins
一、使用官方安装脚本自动安装docker1.安装命令如下:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun推荐:可以使用国内 daocloud 默认最新版 一键安装命令:curl -sSL https://get.daocloud.io/docker | sh启动 Docker。 sudo systemctl start docker查看版本docker -v2.卸载Dockersudo yum原创 2020-12-15 09:20:23 · 265 阅读 · 0 评论 -
SpringMVC - 运行流程图及原理分析
一、Spring MVC工作流程图图一图二图三二、Spring工作流程描述用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;Disp转载 2020-09-29 13:44:47 · 309 阅读 · 0 评论 -
JAVA 23种开发模式详解(代码举例)demo
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:二、设计模式的六大原则1、开闭原则(Open Close P原创 2020-09-29 13:22:48 · 5099 阅读 · 1 评论 -
java 设计模式 之 几种常见设计模式详解 demo
1.单例模式单例模式,它的定义就是确保某一个类只有一个实例,并且提供一个全局访问点。单例模式具备典型的3个特点:1、只有一个实例。 2、自我实例化。 3、提供全局访问点。因此当系统中只需要一个实例对象或者系统中只允许一个公共访问点,除了这个公共访问点外,不能通过其他访问点访问该实例时,可以使用单例模式。单例模式的主要优点就是节约系统资源、提高了系统效率,同时也能够严格控制客户对它的访问。也许就是因为系统中只有一个实例,这样就导致了单例类的职责过重,违背了“单一职责原则”,同时也没有抽象类,所以扩展起原创 2020-09-29 10:40:11 · 1044 阅读 · 0 评论 -
Java 集合详解,常用集合类
一、 java集合类图1. 简单版:2. 图二:3. 图三上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。发现一个特点,上述所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(),next(),remove原创 2020-09-20 11:50:38 · 3549 阅读 · 0 评论 -
Mycat和Sharding-jdbc的区别、Mycat分片join、Mycat分页中的坑、Mycat注解、Catlet使用
一、Mycat和Sharding-jdbc的区别1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包2)使用mycat时不需要改代码,而使用sharding-jdbc时需要修改代码Mycat(proxy中间件层):Sharding-jdbc(TDDL为代表的应用层):二、Mycat分片join在前面的文章Mysql系列四:数据库分库分表基础理论中,已经说过分库分表需要应对的技术难题有如下几个:1.)分布式全局唯一id2.)分片规则和策略3.)跨分片技术问题转载 2020-09-18 10:31:38 · 2172 阅读 · 0 评论 -
SpringBoot集成Email 并配置发送功能
快速入门在Spring Boot的工程中的 pom.xml 中引入 spring-boot-starter-mail 依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav原创 2020-08-11 11:06:18 · 667 阅读 · 0 评论 -
jdk工具生成tomcat搭建https服务
一、生成服务器站点证书1. 生成密钥仓库进入jdk的bin目录,如:D:\jdk1.6.0_16\bin执行:D:\jdk1.6.0_16\bin\keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keystore D:\keys\server.keystore -validity 36500参数说明:-genkey 生成秘钥。-keyalg 指定秘钥算法,这里指定RSA-keysize 指定秘钥长度, 默认1024位 ,这原创 2020-07-10 14:04:39 · 205 阅读 · 0 评论 -
Spring Boot认证:整合Jwt
背景Jwt全称是:json web token。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。优点简洁: 可以通过URL、POST参数或者在HTTP header发送,因为数据量小,传输速度也很快;自包含:负载中可以包含用户所需要的信息,避免了多次查询数据库;因为Token是以JSON加密的形式保存在客户端的,所以JWT是跨语言的,原则上任何web形式都支持;不需要在服务端保存会话信息,特别适用于分布式微服务。原创 2020-07-08 10:37:17 · 178 阅读 · 0 评论 -
SpringBoot 处理跨域请求
什么是跨域?由于安全原因,浏览器都遵循着同源原则,拦截了不同域名之间的请求。跨域请求,是指能让不同域名之间,可以相互发送请求。 当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request)。 比如说,域名A ( http://domaina.example ) 的某 Web 应用程序中通过< img>标签引入了域名B( http://domainb.foo ) 站点的某图片资源(http://domain原创 2020-07-08 09:48:54 · 176 阅读 · 0 评论 -
Alibaba Java 开发手册 1.5.0 华山版
前 言《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以 Java 开发者为中心视角,划分为编程.原创 2020-07-03 16:01:20 · 867 阅读 · 0 评论 -
Java检查字符串是否包含中文字符
一、实现方式一1、针对每个字符判断 public static boolean isChinese(String str) throws UnsupportedEncodingException { int len = str.length(); for(int i = 0;i < len;i ++) { String temp = URLEncoder.encode(str.charAt转载 2020-07-03 10:06:30 · 431 阅读 · 0 评论 -
spirngboot2.3.0 +Cache + Redis 实现注解缓存
1. 在pom.xml中 引入redis依赖 <!-- 缓存依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency><!-- redis --> <dependency原创 2020-06-04 11:24:10 · 187 阅读 · 0 评论 -
spirngboot2 集成 druid 数据源 监控
pom文件配置 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.22</version> </dependency>application.yml配置spring: application: nam原创 2020-05-29 08:42:28 · 174 阅读 · 0 评论 -
spring gateway 处理 跨域 问题
先简单描述一下架构,项目采用前后端分离的方式,前端是nodejs来搞layui(单页版),后端采用spring cloud Alibaba,网关用的是spring cloud Gateway,然后出现了跨域问题。一开始百度我以为只需要在Controller上加上@CrossOrigin就能搞定,后来发现出现了很多问题。问题一:因为后端还有网关,所以如果你没有自定的headers的头信息那么是可以通过 spring cloud Gateway ,但是如果有加自定义Headers,这样就会被 spring转载 2020-05-27 13:34:07 · 789 阅读 · 0 评论 -
centos7 yum 安装 JDK1.8
安装之前先检查一下系统有没有自带open-jdk命令:rpm -qa |grep javarpm -qa |grep jdkrpm -qa |grep gcj如果没有输入信息表示没有安装。如果安装可以使用rpm -qa | grep java | xargs rpm -e --nodeps 批量卸载所有带有Java的文件 这句命令的关键字是java首先检索包含java的列表yum list java*检索1.8的列表yum list java-1.8* 安装1.8.0的所有文转载 2020-05-22 16:51:23 · 120 阅读 · 0 评论