自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 ElasticSearch7.12.1、Kibana7.12.1安装及设置密码,整合springboot2.5.3

目录ElasticSearch安装Kibana安装设置密码ElasticSearch设置密码Kibana设置密码Spring连接ElasticSearchspring升级注意连接配置ElasticSearch安装下载好安装包后,上传到服务器,下载地址:https://www.elastic.co/cn/start解压tar -zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz启动es只能普通用户操作,不能用root账户,创建普通用户# 添加⽤户名

2022-01-25 15:27:51 10326

原创 jvisualvm连接远程服务器

目录jar包启动方式连接踩过的坑jar包启动方式连接jar包名为:store.jar,普通的启动命令java -jar store.jar,如果后台启动需要nohup命令,或者指定jvm空间需加上-Xmx之类的命令,这里以最普通的启动命令举例,需再加上以下命令启动: java ‐Dcom.sun.management.jmxremote.port=8093 ‐Djava.rmi.server.hostname=xxx.xxx.xx.xx ‐Dcom.sun.management.jmxremote.s

2021-11-17 15:58:38 8330

原创 IJPay微信退款协议不正确 No appropriate protocol

目录问题发现问题研究解决方案问题发现项目中有微信支付功能,也可以微信退款,因为自己写支付代码比较臃肿,所以用了第三方包IJPay来实现支付和退款功能,它封装了一些第三方支付的方法,比如支付宝、微信、银联,使用了一年多没有问题,前端时间突然使用微信退款功能时报错:cn.hutool.core.io.IORuntimeException: SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suite

2021-08-04 14:08:05 20512 7

原创 Nacos安装、集群部署及利用Nginx反向代理

目录Nacos安装集群部署配置Nginx负载均衡踩过得坑Nacos安装下载地址:https://github.com/alibaba/nacos/releases把下载好的文件传到服务器,类似tomcat,解压之后在bin目录直接运行即可,不需要像nginx、redis安装编译安装的步骤启动命令:在nacos的bin目录下输入默认集群启动:./startup.sh单机启动:./startup.sh -m standalone停止命令:./shutdown.sh集群部署修改nacos里

2021-05-11 10:43:21 4419 3

原创 Java自定义注解结合反射获取注解中字段

目录注解反射注解注解可以标记在包、类、属性、方法,方法参数以及局部变量上,且同一个地方可以同时标记多个注解。注解最常见的应用是可以通过反射技术去得到类里面的注解,以决定怎么去运行类。负责注解其他注解的注解,java的四个元注解:1.@Target:描述注解的使用范围,即用在类、方法、变量,它的取值范围定义在ElementType 枚举中。public enum ElementType { // 类、接口、枚举类 TYPE, // 成员变量(包括:枚举常量) FIELD,

2020-06-24 10:57:13 3508

原创 Java代理模式及spring aop实现原理

目录spring AOP是什么?应用场景注解JoinPoint中基本API操作代理模式什么是代理模式作用静态代理第一种方式:实现同一个接口第二种方式:代理对象继承原对象动态代理jdk动态代理模拟Proxy.newProxyInstance方法在底层如何通过jdk动态代理实现动态代理的cglib动态代理模拟cglib在内存中生成的代理对象:spring AOP是什么?传统的OOP的编程中,http请求通过servlet,service,dao是一层一层的,代码逻辑是自上而下的,但是在自上而下的过程中,比如

2020-06-23 11:31:43 227

原创 Java位运算,负数的二进制表示形式,int类型最大值为什么是2的31次方-1

目录二进制中负数怎么表示?Java位运算按位运算移位运算int类型的取值范围是多少?二进制中负数怎么表示?在进行位运算之前,先看看负数的二进制形式在计算机中是如何表示的,在计算机中所有的数字都是以二进制补码的形式表示的,其中第一位(最高位)是标志位,为0表示正数,为1表示负数,剩余的位才是用来表示数字部分的。使用补码,可以将符号位和数值域统一处理。同时,加法和减法也可以统一处理。原码:正数的原码是按照绝对值大小转换成的二进制数。负数的原码是按照绝对值大小转换成的二进制数,然后最高位补1表示为负数。

2020-06-20 11:36:01 1583

原创 Java一对多情况下,使用EasyPoi实现Excel合并单元格完成导出功能

目录前言实现后记前言在实际开发中,数据库里面一对多的形式是普遍的事情,比如本次业务中,是一个举报模块,首先需要填写举报人信息,然后可以举报多个员工或者合作伙伴,那么这里就是一个举报人对应多个员工或者合作伙伴。在后台管理页面里的表格里,我是每行只展示的举报人的消息,通过添加一个“查看详情”的按钮,可以打开新的页面查看被举报人的详细信息,这样算是比较合理的。但是需要对这些信息做一个Excel导出功能的话,该怎么在Excel里展示信息比较合理呢?我想到的就是合并单元格的形式。首先看看后台页面的展示情况:

2020-06-20 10:38:03 4131 2

原创 Java常见线程池简介、线程池创建、线程池原理、死锁产生原因及排查

目录什么是线程池?什么是阻塞队列线程池的工作队列线程池执行流程几种常见的线程池newFixedThreadPoolnewCachedThreadPoolnewSingleThreadExecutornewScheduledThreadPool底层原理参数简介饱和拒绝策略创建线程池什么是死锁手写一个死锁排查死锁什么是线程池?线程池可以简单理解为是管理的线程的池子,创建线程的方式除了继承Tread、实现Runnable、实现Callable这三种方式外,还可以直接从线程池中获取,线程池的作用是:降低资源

2020-05-09 15:42:50 328

原创 JVM类加载器及JVM内存模型简介

目录类加载器什么是类的加载类加载器分类双亲委派模型JVM内存模型堆(Heap)方法区(Method Area)JVM栈(JVM Stacks)程序计数器(Program Counter Register)本地方法栈(Native Method Stacks)类加载器什么是类的加载类的加载指的是将.class文件里的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆内存中创建一个...

2020-05-06 14:46:03 286

原创 HashMap源码put、get、resize操作、为什么HashMap不安全

目录什么是哈希表?时间复杂度解释HashMap底层结构put方法原理get方法原理什么是哈希表?什么是哈希表参考博客在讨论哈希表之前,先大概了解下数组和链表结构在新增、查找操作执行性能数组:采用一段连续的存储单元来存储数据,用于储存多个相同类型数据的集合指定下标查找,时间复杂度为O(1)指定值查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n)对于有序数组,指定值...

2020-05-06 10:23:55 503

原创 java中volatile关键词有什么作用?

目录volatile关键字的特性什么是可见性:什么是原子性volatile关键字的特性volatile是jvm提供的轻量级的同步机制保证可见性不保证原子性禁止指令重排什么是可见性:java内存模型Java Memory Model,简称JMM,他是一种抽象的概念,并不真实存在,描述的是一组规则或规范,通过这种规范规定了了程序中各个变量的访问方式。JVM运行程序的实体是线程,JV...

2020-05-03 11:09:55 434

原创 JAVA为什么要重写equals方法?重写了equals方法后为什么要重写hashcode方法?

目录为什么需要重写equals方法?为什么需要重写equals方法?比方创建一个Student类,定义了一个全参构造方法public class Student { private String name; private Integer stuId; public Student(String name, Integer stuId) { this...

2020-05-01 20:50:23 1536 1

原创 GateWay配置

Gateway配置new modulepom<dependencies> <dependency><!-- 引用自己定义的api通用包,可以使用Payment支付Entity --> <groupId>org.example</groupId> <...

2020-05-01 15:01:50 21869 2

原创 Spring中@NotNull注解@Valid注解简介及使用

前言在开发中,为了代码的稳定性不报空指针异常,经常需要判断前端传过来的值是否为空,为空的话就返回前端值为空的提示,才能进行下一步的操作,例如登录操作需要判断传过来的登录名和密码是否为空: @GetMapping("login") public Result login(User user) { if (StringUtils.isEmpty(user.getUse...

2020-04-29 17:36:50 58658 3

原创 遍历HashMap——HashMap遍历的四种方式

1. 通过Map.Entry<>遍历Map<Integer, Integer> map = new HashMap<Integer, Integer>();map.put(1,2);map.put(2,3);for(Map.Entry<Integer,Integer> entry : map.entrySet()){ System....

2020-04-29 14:38:18 196 3

原创 什么是事务?Mysql事务及隔离级别举例说明

目录什么是事务?事务的四大特征事务的并发读问题事务的隔离级别什么是事务?数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。简单的说,事务就是将多条sql语句的执行绑在一起,要么都执行成功,要么都执行失败,即都执行成功才算成功,否则就会恢...

2020-04-29 10:17:32 732

原创 九.Hystrix

主要作用:服务降级,服务熔断,接近实时的监控服务降级:程序运行异常、超时、服务熔断触发服务降级、线程池/信号量打满也会导致服务降级。服务降级是不让客户端等待并立即返回一个友好提示,fallback服务熔断:类比保险丝,当服务器达到最大服务访问后,直接拒绝访问,然后调用服务降级的方法,返回友好提示服务限流:秒杀等高并发操作时,严禁一窝蜂的流量进来Hystrix配置创建modul配...

2020-04-28 23:00:46 175

原创 java手写一个单例模式

目录什么是单例模式?使用单例模式的目的?懒汉式恶汉式懒汉式 双重锁什么是单例模式?单例类只能有一个实例单例类必须自己创建自己的唯一实例单例类必须给所有其他对象提供这一实例使用单例模式的目的?单例模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在懒汉式线程不安全单例模式public class Singleton { private stati...

2020-04-28 17:23:37 1922

原创 ffmpeg安装及在java中的使用案例

目录Windows下载及安装后台代码测试上传及播放总结Windows下载及安装打开官方链接:官方链接点击“Windows builds by Zeranoe”点击“download”即可下载解压下载的压缩包到任意位置,可以看到压缩包里面有个“bin”文件夹,这个就是我们需要配置进Windows环境变量的文件夹地址配置环境变量,配置过程和配置java环境变一样,...

2020-04-28 16:39:03 1842

原创 什么是微服务?Springcloud和微服务的关系?

目录什么是单体架构?优点缺点微服务架构优势缺点什么是SpringCloud?SpringCloud和SpringBoot的关系什么是单体架构?在软件设计中,会将软件分为三层模型:表示层:用于和用户交互,通常是网页业务逻辑层:简单说是我们的逻辑代码数据访问层:用户在网页(表示层)交互的信息,是数据访问层访问数据库拿到的在这种模式下将所有业务场景的表示层、业务逻辑层、数据访问层放在一起...

2020-04-28 10:57:32 3525

原创 八.OpenFeign配置

Feign是什么?能干什么?在前面是采用的Ribbon+TestTemplate封装http请求,形成一套模板化的调用方式,但在实际开发中,一个接口可能会被多次调用,所以针对每个微服务会自行封装一些客户端来对这些服务调用。使用Feign,只需要创建一个接口,并使用@FeignClient注解这这个接口,在接口里面写上需要被调用的服务名称,即可以完成对生产者的接口绑定,简化了使用Ribbon+T...

2020-04-27 20:57:29 4625

原创 SpringBoot过滤器、拦截器配置

过滤器配置创建过滤器public class LogCostFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(Servle...

2020-04-27 17:27:00 201

原创 SpringBoot配置Swagger接口文档参数及返回值注释详细操作

目录SpringBoot中配置SwaggerSwagger常用注解测试注解用途用实体类接收参数或者返回数据配置SpringBoot中配置Swagger1. 导入依赖官方推荐里说只需要前面两个依赖就可以了,但实测只导入上面两个依赖的话,后台会报依赖,网上查询加上下面两个依赖后不报异常了,原因未知。 <dependency> <groupId>io.spring...

2020-04-27 17:03:28 30151 1

原创 Layui实现列表展示图片及点击放大展示

Layui列表渲染代码注:首先是返回了一个span标签包裹一个img标签span标签里面的id值是根据当前数据的id值设定的,这样在点击图片的时候,才可以根据唯一id获取到图片img标签设置了宽高,可以正好在列表中显示img标签内定义了一个“showPic”事件,这样才可以下文js监听这个事件{field: 'picUrl', title: '图片链接', align: "cent...

2020-04-27 15:56:10 19195 10

原创 SpringBoot配置全局异常捕获

全局异常捕获返回json格式前后端分离开发中,后台接口返回给前端的数据一般都是json格式,所以这种情况下,异常捕获之后也是返回前端json格式1. 自定义异常类注:异常类里定义了一个参数为ResultCode 枚举类的构造方法,这种方法可以直接在枚举类里面配置各种状态的code和message,非常直观地就能知道返回的code和message信息,同时枚举类里面的信息也可以复用。pub...

2020-04-27 15:15:21 548

原创 intellij idea常用插件分享

目录CodeGlance: vscodTranslationRainbow BracketsGrep ConsoleStatisticRestfulToolkitMybatis Log PluginFree Mybatis PluginKey Promoter XAlibaba Java Coding Guidelines其他插件CodeGlance: vscod在idea界面会显示右侧代码导...

2020-04-27 11:47:30 269

原创 Idea整合码云gitee插件实现idea内同步更新项目

目录安装插件上传本地项目到码云仓库更新操作注意安装插件1. idea安装码云gitee插件2.在设置里面配置好码云账号上传本地项目到码云仓库第一次上传到码云仓库,不需要在码云上面创建仓库,直接在idea里面操作,就可以上传当前项目到码云,并且自动配置仓库这是上传到码云上面的项目更新操作点击如图,commit and push注意idea整合gitee插...

2020-04-27 11:15:34 3816

原创 Docker基本操作命令及整合idea实现一键部署到云服务器

目录镜像和容器的关系centOS安装Dokcer步骤Docker安装命令配置加速器下载镜像及Docker基本操作命令运行Docker镜像Docker 数据卷mysql安装步骤Redis安装步骤Dockerfile 定制镜像构建镜像虚悬镜像将war包部署到tomcatIdea集成docker实现镜像打包一键部署Dockerfile配置镜像和容器的关系在Dokcer里面下载的是镜像,通过镜像运行...

2020-04-27 10:47:29 542

原创 七.Ribbon介绍及配置

目录什么是负载均衡?什么是Ribbon?Ribbon负载均衡策略消费者Ribbon配置主启动类配置负载均衡配置测试什么是负载均衡?负载均衡简单说就是将客户端发送的请求,均匀地分配到多个服务器上的一种技术,常见软件Nginx、LVS、硬件F5等。集中式负载均衡: 在服务的消费方和提供方之间使用的独立的LB设施(可以是硬件(F5),也可以是软件(Nginx)),由该设备将请求发送给服务的提供方。...

2020-04-26 21:20:58 328

原创 SpringBoot+Shiro配置数据库实现后台管理页面根据角色权限动态生成菜单栏

目录前言配置数据库动态生成菜单栏步骤后台搭建数据库表后台实现shiro配置总结参考表数据测试页面效果前言SpringBoot+Shiro做后台管理项目配置权限时,普遍的做法是通过配置shiro标签在html页面里面,来判断当前用户是否拥有该权限,来确认是否展示当前菜单,shiro标签类似如下:<!--验证当前用户是否拥有指定权限。 --><a shiro:hasPerm...

2020-04-26 17:37:50 4911 2

原创 SpringBoot返回前端时间格式化处理

目录抛出问题方式一:前台转换方式二:后台转换抛出问题在开发中返回前端数据的时候,如果时间格式不做处理的话,前端拿到的数据,时间格式是如下图所示的:方式一:前台转换在用Layui做写后台页面的时候,用layui提供的一个工具转化也是可以的templet: '<div>{{ layui.laytpl.toDateString(d.createTime) }}</div&g...

2020-04-26 17:07:51 9862 2

原创 MybatisPlus使用枚举自动返回状态status中文名称

目录引入问题抛出问题:方式一:方式二:方式三:总结引入问题在开发中,经常会使用数据库中一个字段标识这条数据的一种状态。比如数据库中“status”字段,为0代表“已审核”,1代表“未审核”,2代表“已拒绝”,在这种情况下,开发的时候我们可能会写静态常量类或者枚举类标识其中的属性,例如: public static enum ChildrenStatus{ examin...

2020-04-26 16:46:57 6915 5

原创 MybatisPlus自定义Sql实现多表查询

目录前言分页查询VO对象ControllerServiceServiceImplMapperXML内容总结MybatiPlus文档前言前段时间看同事的代码,发现他用Layui+MybatisPlus做分页查询做得很规整,认真看了下代码发现这种方式不仅适用于与Layui做分页查询,在任何时候需要多表联查的时候都可以用到。以下以Layui分页查询作为参考,在实际应用中可以灵活使用。分页查询VO...

2020-04-26 16:07:57 8701

原创 Layui动态生成下拉框

目录前言Layui框架实现html页面js写法总结前言在写后台管理页面的时候,经常需要有下拉框搜索功能,比如说数据库有一张类型表,那么这个时候的下拉框里选项是需要根据表的数据一致的,当用户修改了数据库数据的时候,下拉框的选项也需要动态的改变。Layui框架实现html页面<form> 垃圾名称: <div class="layui-inline">...

2020-04-26 15:11:30 6113

原创 JWT基本使用及常用验证方式对比

这里写目录标题传统验证方式JWT是什么JWT机制优缺点使用依赖jwtUtil拦截器配置拦截器和跨域问题:传统验证方式在前后端分离的场景中,包括APP端和WEB端,由于http协议是无状态的,那么用户登录认证之后,再向服务器发送的请求的时候,服务器是不知道这个这个用户是否已经登录认证过了。传统的方式是通过cookie和session,用户登录之后将用户信息存储在session中,下次请求的时...

2020-04-26 14:23:46 446

原创 JSONObject基本操作

基本操作//接口返回的字符串数据转成JSONObject再操作,JSONObject.parseObject(result);String result = EpidemicUtil.request(httpUrl, date);JSONObject jsonObject = JSONObject.parseObject(result);//获取JSONObject里面的字段属性,jso...

2020-04-26 12:02:03 585

原创 Lambda表达式+策略模式+泛型

目录引出问题抛出问题一:方式一:抛出问题二:方式二:抛出问题三:方式三:方式四:Lambda表达式语法Lambda只能用在函数式接口JAVA中四个内置函数式接口引出问题创建了一个List集合,通过对这个集合的操作,抛出问题,并且利用Lambda表达式解决问题。public class Test { public static void main(String[] args) { ...

2020-04-26 11:56:12 784

原创 JAVA String常量池及思考

目录String类型初始化问题一问题二问题引出三String的拼接问题一问题二String类型初始化通过双引号包裹一个字符或者字符串来初始化,这种方法会首先在常量池中寻找是否有对应的常量,有的话直接引用这个常量的内存地址,没有的话会创建这个对象并在常量池存储这个变量,并引用这个常量池中常量的内存地址。 String a = "123"; String b =...

2020-04-26 11:20:55 118

原创 六.Eureka配置

配置步骤新建模块测试新建模块new module->maven创建启动类注意启动类上面要添加@EnableEurekaServer注解,才能配置成功@SpringBootApplication@EnableEurekaServerpublic class EurekaMain7001 { public static void main(String[] args) ...

2020-04-25 17:58:01 204

空空如也

空空如也

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

TA关注的人

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