自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (3)
  • 收藏
  • 关注

原创 JFinal Enjoy模版引擎使用手册

1、概述Enjoy Template Engine 采用独创的 DKFF (Dynamic Key Feature Forward)词法分析算法以及独创的DLRD (Double Layer Recursive Descent)语法分析算法,极大减少了代码量,降低了学习成本,并提升了用户体验。Enjoy 模板引擎专为 java 开发者打造,所以坚持两个核心设计理念:一是在模板中可以直接与 java 代码通畅地交互,二是尽可能沿用 java 语法规则,将学习成本降到极致。因此,立即掌握 90% 的用

2022-05-05 15:01:20 1039

原创 Redis内存占用过大如何分析?

redis内存占用过大,如何从成千上万的key中找到占用内存最大的可以,如何快速进行定位与分析?

2022-05-05 14:00:18 2724

原创 SpringCloud Feign集成OkHttp&开启请求压缩

文章目录SpringCloud Feign集成OkHttp并开启请求压缩1、引入依赖2、修改配置3、新增配置类4、新增拦截器,开启请求压缩5、Feign使用5.1、启动类加入对应注解5.2、依赖注入调用6、番外篇:什么是Accept-Encoding?SpringCloud Feign集成OkHttp并开启请求压缩使用原因​ 在Feign中,Client是一个非常重要的组件,Feign最终发送Request请求以及接收Response响应都是由Client组件来完成的。Client在Fei

2021-11-29 16:59:39 628

原创 SpringBoot获取文件的真实类型、修改后缀名也能识别出来

1、 前言做文件上传功能时如何准确的判断文件类型?开始是根据文件后缀名判断的,但这样要是故意修改文件后缀就无法准确判断了,在咨询一番度娘后,决定采用读取文件的十六进制文件头来判断文件的真正类型。一、如何获取真实文件格式?当把文件的二进制数据转换成十六进制时,同类型文件的文件头数据是相同的,即使改变了其后缀,这个数据也不会改变。文件头是位于文件开头的一段承担一定任务的数据,一般在开头部分。头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序声明(declaration),而定义文件用于保

2021-11-10 17:42:11 1549

原创 SpringBoot-Poi-TL通过word模板生成word文件

package com.framework.poitl;import com.deepoove.poi.XWPFTemplate;import com.deepoove.poi.config.Configure;import com.deepoove.poi.data.*;import com.deepoove.poi.policy.HackLoopTableRenderPolicy;import org.junit.Test;import org.junit.runner.RunWith;i

2021-11-10 17:28:00 1240

原创 Spring Boot基于Hibernate-Validator,AOP实现数据校验

文章目录1、场景2、引入依赖3、创建AOP3.1、自定义注解3.2、自定义AOP4、方法验证5、Bean验证6、Hibernate Validator注解大全6.1、Bean Validation 中内置的 constraint6.2、Hibernate Validator 附加的 constraint1、场景在企业系统的开发中,用户表单输入的场景是会经常遇见的,如何让数据校验脱离于业务代码逻辑,谁也不想在逻辑代码里对字段逐一判断…2、引入依赖<dependency> <g

2021-11-02 17:55:32 117

原创 SpringCloud-Gateway整合Knife4j并实现自定义注解

文章目录1、Knife4j介绍2、网关整合Knife4j2.1、引入依赖2.2、编写配置类2.2.1、配置SwaggerProvider,获取Api-doc,即SwaggerResources2.2.2、Gateway里没有配置SwaggerConfig,而运行Swagger-ui又需要依赖一些接口,所以我的想法是自己建立相应的swagger-resource端点2.3、yaml配置3、微服务整合Knife4j3.1、引入依赖3.2、编写配置类3.2.1、SwaggerAutoConfiguration:主

2021-11-01 18:17:00 570

原创 SpringBoot整合Xxl-Job实现分布式任务调度

文章目录一、简介1.1 概述1.2 社区交流1.3 特性1.4 发展1.5 下载文档地址源码仓库地址中央仓库地址1.6 环境二、快速入门2.1 初始化“调度数据库”2.2 编译源码2.3 配置部署“调度中心”步骤一:调度中心配置步骤二:部署项目步骤三:调度中心集群(可选)其他:Docker 镜像方式搭建调度中心:2.4 配置部署“执行器项目”步骤一:maven依赖步骤二:执行器配置步骤三:执行器组件配置步骤四:部署执行器项目步骤五:执行器集群(可选)2.5 开发第一个任务“Hello World”步骤一:新

2021-08-31 14:03:04 189

原创 SpringBoot发送文本|HTML|模版|附件邮件

文章目录一、引入依赖二、配置参数三、代码开发3.1 Controller3.2 Service3.2 ServiceImpl一、引入依赖 <!--email--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artif

2021-08-05 16:54:12 126

原创 SpringBoot自定义注解防止表单重复提交(幂等性)

文章目录一.前端限制二.后端限制三.实现3.1 自定义注解防止表单重复提交3.2 配置父类拦截器3.3 重复提交的拦截器实现类3.4 配置拦截器3.5 构建可重复读取inputStream的request3.5.1 继承HttpServletRequestWrapper类3.5.2 实现Filter接口3.5.3 配置Filter3.5.4 辅助类3.5.4.1 转义和反转义工具类3.5.4.2 HTML过滤器,用于去除XSS漏洞隐患3.5.4.3 通用http工具封装3.5.4.4 通用http发送方法

2021-07-31 12:10:30 399

原创 SpringBoot解决XSS跨站脚本攻击

文章目录一.思路二.实现2.1 定义XssHttpServletRequestWrapper2.2 定义XssFilter类实现Filter接口2.3 Filter配置2.4 yaml配置一.思路1.定义XssHttpServletRequestWrapper类继承HttpServletRequestWrapper覆写getParameterValues,getInputStream方法request的inputStream只能被读取一次,多次读取将报错; 解决方案:通过构造方法先记录已读取的内容,然

2021-07-31 11:36:41 997

原创 Swagger2 注解说明

文章目录一、Maven依赖二、注解说明1、**作用于Controller类上**2、**作用于方法上**2.1、说明参数的含义2.2、说明返回参数或对象含义3、**作用于对象类**三、具体使用1、@Api:请求类的说明2、@ApiOperation:方法的说明2.1、@ApiImplicitParams、@ApiImplicitParam:方法参数的说明3、@ApiResponses、@ApiResponse:方法返回值的状态码说明4、@ApiModel:用于JavaBean上面,表示对JavaBean 的

2021-05-11 16:26:36 102

原创 SpringBoot使用Redisson实现分布式锁

文章目录一、什么是分布式锁1.1、概述1.2、为什么要使用分布式锁1.3、分布式锁应该具备哪些条件1.4、典型使用场景二、项目整合2.1、引入依赖2.2、工具类2.3、属性装配类2.4、自动装配类2.5、切面类配置2.5.1、自定义注解2.5.2、切面类三、项目使用3.1、配置文件3.2、工具类封装使用3.3、AOP封装使用一、什么是分布式锁1.1、概述为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。1.2

2021-05-11 16:25:08 230

原创 Spring Boot集成百度UidGenerator分布式ID

一、简介百度UidGenerator是一个分布式数据库id生成器,本文在SpringBoot项目快速优雅集成百度UidGenerator,使用的是 uid-generator-spring-boot-starter ,它是基于百度UidGenerator,在此基础上做了部分改进。改造为spring-boot-starter的形式,不用部署为分布式,直接建表、在项目中引入,即可使用针对时钟回拨,提供了修正选项(默认启用,可通过配置关闭),小于阈值直接休眠,大于阈值更改机器号对机器id用尽提供了复用策

2021-05-11 16:21:17 871 3

原创 阿里Druid数据库连接池配置

1、介绍Druid是一个拥有大数据实时查询和分析的高容错、高性能开源分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。尤其是当发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid仍然能够保持100%正常运行,而且它自带了可视化的监控界面/druid。创建Druid的最初意图主要是为了解决查询延时问题,当时试图使用hadoop来实现交互式查询分析,但是很难满足实时分析的需要。而Druid提供了以交互方式访问数据的能力,并权衡了查询的灵活性和性能二采取了特殊的存储格式。Druid

2021-04-12 09:11:04 442

原创 SpringBoot-Poi-TL通过word模板生成word文件

文章目录1、技术背景2、官方网站3、引入依赖4、代码示例1、技术背景很多时候我们网站或者系统需要提供一些word文件,例如证明.docx或者订单.docx等文件供用户下载打印等用Java操作word文档,毫无疑问,当下最流行apache poi,对于poi如何操作word文档,这里不作过多介绍这里主要讲解如何通过一个制作好的word模板文件,通过数据填充,生成加工好的word文件2、官方网站http://deepoove.com/poi-tl/poi-tl(poi template langu

2021-04-07 10:34:52 641

原创 实战Sharding-Jdbc分库分表

一、水平分表1、搭建环境创建数据库framework_sharding_jdbc,新建course_1,course_2表;约定规则:如果添加课程id是偶数把数据添加到course_1,如果是奇数添加到course_2技术:SpringBoot 2.2.6.RELEASE + 通用Mapper(MyBatisPlus) + Sharding-Jdbc + Druid 连接池创建:SpringBoot工程2、引入依赖<?xml version="1.0" encoding="UTF-8"

2021-04-06 17:38:23 145

原创 Seata+Nacos+Mysql实现分布式事务

文章目录一、解决的问题二、Seata简介1、Seata 是什么?2、三大组件3、处理过程4、使用方法三、技术版本四、Seata Server安装与配置1、Windows 安装1.1、seata准备1.2、修改file.conf,registry.conf配置文件内容1.3、下载config.txt与nacos-config.sh文件1.3.1、config.txt操作流程1.3.2、nacos-config.sh操作流程1.4、数据库文件1.5、启动seata2、Docker 安装2.1、拉取镜像2.2、修

2021-04-04 17:52:41 236 2

原创 RabbitMQ实现100%可靠消息投递

文章目录RabbitMQ实现100%可靠消息投递1. **RabbitMQ介绍**2. **相关概念**3. **交换机(Exchange)**4. **案例**4.1 引入依赖&配置4.2 创建数据库4.3 下单并发送消息4.4 创建生产者4.5 创建消费者RabbitMQ实现100%可靠消息投递RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。消息中间件在互联网公司的使用中越来越多,刚才还看到新闻阿里将RocketMQ捐献给了apa

2021-04-04 17:36:29 148

原创 JMeter安装配置及性能测试使用

文章目录一、下载1、点击Download Releases2、选择zip压缩包另存为3、解压二、安装配置1、配置环境,新建变量2、配置path变量,加入如下两个3、中文配置4、启动三、性能测试1、新建线程组2、添加取样器,HTTP请求2.1、判断请求是否成功2.1.1、在Http请求上右键,新增响应断言2.2.2、添加响应文本:"success":true(根据项目响应结果填写对应的值)2.3.3、显示结果3、添加HTTP Cookie管理器4、添加监听器(察看结果树和汇总报告)5、运行测试用例一、下载

2021-04-04 15:22:27 107

原创 公钥私钥使用说明

文章目录1、资源服务授权流程1.1、传统授权流程1.2、公钥私钥授权流程2、公钥私钥原理3、生成私钥公钥4、导出公钥1、资源服务授权流程1.1、传统授权流程资源服务器授权流程如上图,客户端先去授权服务器申请令牌,申请令牌后,携带令牌访问资源服务器,资源服务器访问授权服务校验令牌的合法性,授权服务会返回校验结果,如果校验成功会返回用户信息给资源服务器,资源服务器如果接收到的校验结果通过了,则返回资源给客户端。传统授权方法的问题是用户每次请求资源服务,资源服务都需要携带令牌访问认证服务去校验令牌的合法

2021-04-04 12:53:04 354

原创 Nacos Sentinel 单机集群版搭建与使用详解

文章目录1、nacos(服务器)搭建1.1 window使用一、下载二、配置三、启动四、关闭1.2 linux使用一、下载二、配置三、启动1.单机版启动2.集群版启动3.启动成功之后可以访问nacos客户端,默认账号密码为:nacos四、关闭2、nacos 配置动态刷新2.1 一般配置2.2 共享配置2.3 示例3、sentinel(客户端)搭建1、nacos(服务器)搭建1.1 window使用一、下载下载对应版本:https://github.com/alibaba/nacos/releases

2021-04-04 12:42:42 437

原创 会员中心搭建

文章目录1、模块划分2、创建父项目3、创建member-api3.1 修改pom.xml3.2 constant3.3 dto3.4 enums3.5 feign3.6 pojo3.7 spring.factories4、创建member-service4.1 引入依赖4.2 整合nacos,配置必须写在bootstrap.yml 中4.3 代码生成,在test/java目录下新建CodeGeneration.java4.4 controller4.5 service4.6 dao1、模块划分主要分为

2021-04-04 12:36:20 329

原创 Spring Cloud网关(GateWay)搭建并整合nacos、sentinel、knife4j

文章目录1、微服务之间令牌传递2、整合nacos|sentinel2.1 引入依赖2.2 nacos|sentinel配置3、整合knife4j3.1 引入依赖3.2 配置类3.3 yaml配置4、请求转发|跨域配置1、微服务之间令牌传递package com.framework.gateway.filter;import com.alibaba.fastjson.JSONObject;import com.framework.common.redis.service.RedisService;

2021-04-04 12:21:14 1289

原创 Oauth2 授权服务器搭建

文章目录1、模块划分2、创建父项目3、创建oauth-api3.1 dto3.2 enums3.3 feign3.4 vo3.5 spring.factories4、创建oauth-service4.1 config4.2 controller4.3 interceptor4.4 service4.5 utils4.6 配置文件1、模块划分主要分为api和service两层,api提供对应的实体类pojo,vo,dto,feign;service主要提供服务2、创建父项目创建pom.xml

2021-04-04 12:07:13 250

原创 公共模块搭建

文章目录1、创建父模块2、创建core模块2.1 引入依赖2.2 异步线程池配置2.3 RestTemplate配置2.4 Spring Mvc配置2.5 常量实体配置2.6 Feign配置2.6 Security配置2.6 utils配置2.7 异常配置2.8 resources配置3、创建db模块3.1 引入依赖4、创建redis模块4.1 引入依赖4.2 创建配置类4.3 resources配置5、创建swagger模块5.1 引入依赖5.1 创建配置类5.2 resources配置1、创建父模块

2021-04-04 11:14:30 282

原创 父项目搭建

文章目录1、准备环境2、创建文件夹3、新建pom.xml3、新建.gitignore1、准备环境JDK >= 1.8(推荐1.8版本)MySQL >=5.5.0(推荐5.7版本)Redis >= 3.0Maven >= 3.0Node >= 10Nacos >= 1.3.0sentinel >= 1.7.12、创建文件夹idea下File->New Project->Empty Project->输入工程目录名framew

2021-04-04 11:00:47 123 2

Java面试题库与答案解析

包含Java常见面试题,高并发、大数据、源码解读、缓存、Mq、数据库、微服务、设计模式、jvm、多线程等

2021-08-05

Word转Pdf所需Jar包及dll文件

绝对有效,公司线上环境就是使用的这个jar包和dll文件,其中包含文件如下:jacob-1.19.jar,jacob-1.19-x64.dll

2021-07-31

百度小程序用户信息解密UnlimitedJCEPolicyJDK8

因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制。比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件, 从官方网站下载JCE无限制权限策略文件,注意自己JDK的版本别下错了。将local_policy.jar和US_export_policy.jar这两个文件替换%JRE_HOME%\lib\security和%JDK_HOME%\jre\lib\security下原来的文件,注意先备份原文件。

2020-05-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除