自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IP地址解析API 开放API LGP6-API开放能力

免费获取IP地址信息的API接口

2022-08-22 18:25:48 383 1

原创 SpringBoot中LocalDateTime序列化与反序列化配置(异常解决)

问题异常信息:Invalid JSON input: Cannot deserialize value of type java.time.LocalDateTime from String “2021-7-21 15:21:13”: Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text ‘2021-7-21 15:21:13’ could not be parsed a

2021-07-21 13:52:10 2081 1

原创 Java生成随机数大概多少次会出现重复?(JDK1.8)

本文基于JDK1.8最近在项目中碰到一个做订单号的需求,甲方的意思是以字母开头,后边跟年份和6位流水号.我第一反应就是流水号用随机数生成,突然就想到一个问题,Java的随机数真的靠谱吗?六位数大概是十万级别,Java可以保证一万次不重复吗?带着疑问,我通过三种生成随机数的方式做了三个测试.1.利用Math.random()生成六位随机数测试 List<Integer> list=new ArrayList<>(); //记录计算次数

2021-06-08 18:44:48 3001 4

原创 Linux搭建禅道12.5.1(项目管理系统)

1.下载压缩包先到禅道官网下载禅道 本文以开源版为例.(根据自己Linux系统位数判断下载哪一个Linux查看系统位数的一个方法: 输入uname -m 返回X86_64就是64位)下载完成后利用XFTP或其它工具将安装包放到Linux服务器上或者直接在Linux服务器上利用如下命令拉取压缩包64位: wget http://dl.cnezsoft.com/zentao/12.5.1/ZenTaoPMS.12.5.1.zbox_64.tar.gz32位: wget http://d

2020-12-17 15:36:47 300

原创 Java使用SpringBoot实现简单的文件上传(上传文件到本地)

实现代码:(此处代码写在了Controller层 建议写在Service层,Controller只做调用) /*使用SpringBoot实现简单文件上传(上传至本地)*/ @RequestMapping("/upload") public String upload(@RequestBody MultipartFile file) throws IOException {//MultipartFile 接收前端传过来的文件 // 注意 前端传参的name要和Mul

2020-12-14 12:36:12 4279 2

原创 SQL语句条件判断之case when基本用法

在日常开发中有些需求我们无法避免的要在SQL语句中进行类似于Java中if判断的操作,那SQL语句是否可以满足呢?本文将介绍SQL条件判断关键字case when的基本用法基本语法case x when y then z else m end乍一看看不懂没关系,我们把它拆分开解释case x 意思就是设置一个参数,x可以是一个数据库字段,也可以是一个dao层传递的参数,也可以是一个固定值when y 意思就是给设定的x参数设置条件then z 就是当x满足y条件之后做的操作,类似于Ja

2020-12-09 14:18:24 7687

原创 SpringCloud启动报错 Cannot execute request on any known server 异常分析及错误排查

异常信息2020-11-04 08:32:36.278 ERROR 104 --- [nfoReplicator-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/}com.sun.jersey.api.client.ClientHandlerException: java.ne

2020-11-04 08:54:23 1662 3

原创 浅读HashMap

什么是HashMap?HashMap是Java的一个集合容器. 用于存储Key-Value对HashMap的应用场景假定如下场景:记录张三,李四,王五三位同学的成绩.这时候我们有必要去做一个实体类内部包含姓名和成绩两个字段吗?没有必要的.完全可以利用HashMap.存入:Map<String,double> map=new HashMap();map.put("张三",60.0);map.put("李四",80.5);map.put("王五",79);取出:doubl

2020-10-24 19:59:31 447 2

原创 Redis缓存穿透“新杀招“:布隆过滤器Bloom Filter

场景分析这篇文章来讲述缓存穿透的补充解决方案.为什么要用补充来形容呢?在之前的文章中,我们提到缓存穿透的解决方案时,我是这么说的:关于缓存穿透,我们可以在用户访问数据库后将null值存入Redis来解决.那么这样就真的万无一失了吗??No No No!!!当然不是.我们设想如下的场景:某组织或某个人就是想干掉你的服务器,他写了一个这样的程序:定义n=-1;使用循环,每次循环n=n-1;然后每次循环都去利用n作为商品id访问你的数据库.他将这个程序放在了他所控制的许多个客户端中.那

2020-10-15 17:59:37 282

原创 Redis分布式锁的实现与解释

又是一个月黑风高的夜晚....在我翻阅自己文章的时候猛然发现我的一篇文章涉及到了`分布式锁`,而我并没有详细的解释分布式锁的实现方式,这怎么能行?这怎么可以?于是乎...我擦了擦键盘上的灰,按下了生锈的主机电源按钮....心里怀着"安得广厦千万间,大庇天下寒士俱欢颜!"的雄心壮志故事就这样开始了...在使用Redis作为缓存的时候,在高并发的场景下,我们需要考虑哪些问题又该如何解决呢?比如,在某一时刻,我们的缓存到期,而恰好,这个时候,这个数据的热度突然飙升,那我们的数据库该何去何从呢

2020-10-14 21:13:34 279

原创 如何搭建自己的微信公众号?

在一个月黑风高的夜晚...我突然萌生了一个做自己的微信公众号的想法!所以呢…就记录一下我做自己公众号的方式方法.希望可以帮助到别人当然呢,主要是来骗一波关注!先上二维码先扫码 后关注 再看后文!先进入 微信官网...

2020-10-14 19:09:04 2285 1

原创 Web应用开发中,Request与Response的概念及区别

Request与Response的共同作用就是客户机与服务机之间的数据传递.概念基本概念Request可以理解为对浏览器请求的封装.Response可以理解为对浏览器响应的封装二者的区别作用上Request的作用是转发,生成http请求信息,与客户端交互,收集客户端的数据如Cookies,表单数据(Form),或者收集服务器端的环境变量.Response的作用是重定向.用来生成Http响应信息,动态响应客户端请求,控制返回给用户的信息内容,并将动态生成相应.原理上Request:客户端可

2020-10-11 12:18:23 484

原创 Java实现对浏览器cookie的读写和删除.

Tips:本文末尾分享了一个可以立即使用的cookie工具类代码,如果想直接使用,可以拖到文件最后复制使用.如果对基本概念实在没有兴趣,可以先使用,使用的时候发现不明白的地方,再回头来看一些概念.不过还是推荐先熟悉概念再上手使用.基本概念什么是cookie?概念cookie在web开发中可不是引用它的原意"曲奇"的意思哦~在web开发中 cookie的含义是储存在用户本地终端上的数据 类型为小型文本型文件,用Java来说就相当于只支持String类型.属性name:cookie的名称

2020-10-11 12:03:32 5417 1

原创 Java基础编程题:求1+(1+2)+(1+2+3)+(1+2+3+4)+(...)+(1+2+3+4+....+100)的和

题目求1+(1+2)+(1+2+3)+(1+2+3+4)+(…)+(1+2+3+4+…+100)的和答案 int sum=0; for (int i=0;i<=100;i++){ for (int j=0;j<=i;j++){ sum+=j; } } System.out.println(sum);结果171700...

2020-10-10 12:10:08 4612

原创 简述Redis与Memcached的区别

Redis与Memcached都是比较优秀的缓存中间件.对于这两者的选择,我们可以根据情景的不同做出不同的选择.本文简述一下这两者的部分区别.如下数据类型方面Redis支持五种数据类型.(String,List,Hash,Set,SortedSet)而MemCached仅支持一种数据类型.(String)持久化方面Redis可以进行持久化操作Redis将数据存储于内存中,但也会定时的将数据存放到硬盘中.我了解到的存储到硬盘的方式有两种:RDB和AOFRDB:就是将数据创建一个快照,存储到硬

2020-10-10 11:44:00 289 2

原创 SpringBoot踩坑:项目将日期时间存入数据库时日期时间提前8个小时怎么办?

问题在我们利用new Date()获取当前系统时间或利用其它方式定义时间后,将数据存储到数据库时,发现成功添加,但是日期比我们项目中传入的日期提前了8个小时.这怎么办?解决方案在SpringBoot配置文件中配置spring.datasource.url时,设置serverTimezone参数为GMT%2b8如下所示spring.datasource.url=jdbc:mysql://ipaddr:3306/dbname?serverTimezone=GMT%2b8其中"%2b“即为”+"的意

2020-10-09 16:10:41 1357 2

原创 Java基础编程题:倒序输出九九乘法表

题目用for循环生成如下图所示的九九乘法表.答案利用双重for循环完成操作. for (int i=9;i>0;i--){ for(int j=i;j>0;j--){ System.out.print(i+"*"+j+"="+i*j+" "); } System.out.println(""); }输出结果:...

2020-10-08 21:02:02 6389

原创 Redis高并发常见问题:缓存穿透/缓存雪崩/缓存击穿的概念及解决方案

1.缓存穿透概念缓存穿透就是访问数据库中不存在的数据,高并发情况下或有人恶意的不停的访问该数据,导致请求打到数据库,直至数据库崩溃.比如我们在写项目的时候,商品的主键id很少为负数.那么可能有人就会不停的访问id为-1的商品.而这个商品又不存在,导致我们的数据库崩溃.解决方案这里我通常的解决方案是在一个请求打到数据库返回null值时,在redis中给这个商品的key存入一个empty数据.使后边的请求直接访问redis而不是再去访问数据库. jedis.setex(key,60,"empty"

2020-10-08 02:17:12 468

原创 注解的概念及自定义Java注解并实现注解给字段赋值

一,注解基本概念从JDK1.5开始,Java提供了对元数据(MetaData)的支持,也就是注解(Annotation)注解,其实就是代码中的特殊标记,这些特殊标记可以在类加载,编译,运行时被读取,并执行相应的处理使用注解最大的作用就是在不改变程序原逻辑的情况下添加补充信息注解(Annotation)可以像修饰符一样来使用.可用于修饰包,类,构造器,方法.成员变量,参数,局部变量的声明,这些信息被保存在Annotation的"name=value"对中注解(Annotation)能被用来为程序元素

2020-10-05 21:48:57 7298

原创 浅读JVM

JVM(Java Virtual Machine) Java虚拟机先附上一个我整理的思维导图JVM的基本概念基本概念JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字

2020-10-05 10:36:29 202 2

原创 Spring事务:Spring事务隔离级别有几种?分别是什么?Spring事务传播属性有几种?都是什么?

Spring事务1.Spring事务隔离级别default(默认)PlatfromTransactionManager默认的隔离级别使用数据库默认的事务隔离级别,除了default 其它几个Spring事务隔离级别与JDBC事务隔离级别相对应read_uncommited(读未提交)一个事务可以读取另外一个事务未提交的数据这可能出现脏读 而且不可重复度,出现幻像读等.read_commited(读已提交)一个事务可以读取另一个事务已经提交的数据不可以读取未提交的数据可以避免脏读 但是

2020-09-21 13:44:00 9523

原创 Linux-CentOS7:FastDFS+Nginx搭建外网可用图片文件服务器

FastDfs是C语言开发,建议在Linux上运行.本教程以Linux虚拟机+CentOS7为例资源下载https://lgp6.lanzous.com/i88upga84eh安装FastDfs安装C语言编译器gcc-c++yum install gcc-c++ -y安装事件通知库libeventyum install libevent -y如果没有perl库可以使用如下命令安装yum install perl*安装libfastcommon将压缩包libfastcommonV1

2020-09-12 19:08:16 419

原创 Java-SpringBoot:什么是跨域?SpringBoot怎么实现允许跨域访问?教程.

跨域什么是跨域请求(CORS)?CORS 全称 Croos Origin Resource Sharing(跨域资源共享)每一个页面需要返回一个名为Access-Control-Allow-Origin的http头来允许外域的站点访问,可以仅仅暴露有限的资源和有限的外域站点访问SpringBoot实现跨域单独配置在控制器层 也就是Controller加一个@CrossOrgin注解其实就可以了.意思是允许该类下的所有资源可以通过跨域访问.当然 也可以写在某一个单独的方法上 代表这个方法允许

2020-09-12 16:57:47 1008

原创 Linux-CentOS7:怎么开放端口 避免防火墙拦截外网访问?教程.

开放端口命令firewall-cmd --zone=public --add-port=端口号/tcp --permanent返回success即为成功这时候重载一下防火墙即可立刻生效.firewall-cmd --reload

2020-09-12 16:41:43 903

原创 Linux-CentOS7:Docker容器安装dubbo+zookeeper教程

我的docker版本拉取镜像拉取zookeeper镜像docker pull zookeeper拉取dubbo镜像docker pull chenchuxin/dubbo-admin查看镜像docker images创建容器创建zookeeper容器docker run --name zookeeper -p 2181:2181 -d --restart always zookeeper创建dubbo容器docker run --name dubbo -d -p 8080

2020-09-12 16:37:20 437

原创 Linux-CentOS7:Docker容器中安装rabbitmq消息队列容器教程

拉取rabbitmq镜像docker pull rabbitmq:3.7-management查看镜像docker images创建容器docker run --name rabbitmq -p 5672:5672 -p 15672:15672 -d rabbitmq-3.7-management查看容器docker ps -a关闭防火墙关闭防火墙systemctl stop firewalld禁用防火墙systemctl disable firewalld测试外网

2020-09-12 15:42:58 161

原创 Linux-CentOS7:Docker容器搭建Redis/Redis桌面管理程序

安装Redis拉取redis镜像docker pull redis查看镜像docker images创建redis容器docker run --name redis -d -p 6379:6379 --privileged=true redis如果有挂载数据卷的需求可以自行改变代码查看容器docker ps -a安装Redis桌面管理工具下载下载地址:https://lgp6.lanzous.com/iGUcmgejacb连接Redis出现如下连接成功即为red

2020-09-12 15:25:37 100

原创 Linux-CentOS7:Docker容器安装ElasticSearch和可视化管理工具Kibana以及踩坑

准备好Docker容器我的版本是安装Es拉取Es镜像docker pull elasticsearch查看镜像docker images创建容器docker run -e ES_JAVA_OPTS="-Xms1024m -Xms1024m" --name elasticsearch -d -p 9200:9200 -p 9300:9300 elasticsearchEs比较消耗内存资源,-e ES_JAVA_OPTS="-Xms1024m -Xms1024m"用来指定es运

2020-09-12 01:29:42 608 1

原创 Linux-CentOS7:Docker容器安装mysql5.6

Docker版本:拉取mysql5.6镜像docker pull mysql:5.6查看镜像docker images创建mysql容器docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci命令解释:docker run -p(设置端口) 33

2020-09-11 10:05:07 391

原创 Linux-CentOS7:Docker容器安装Tomcat并配置支持外网访问

拉取Tomcat镜像docker pull tomcat等待下载完成.查看镜像docker images创建Tomcat容器docker run --name tomcat01 -d -p 8080:8080 tomcat创建容器代码解释:docker run --name(设置容器名) 容器名 -d(创建完成后台运行) -p(设置端口号) 虚拟机访问端口:8080(Tomcat容器端口) 镜像名等待创建完毕 查看容器列表docker ps -a这时候我们的Tomcat就

2020-09-11 09:40:31 705 1

原创 Linux-CentOS7:Docker容器配置阿里云镜像加速及镜像上传

阿里云镜像加速访问地址 https://cr.console.aliyun.com/登录进去进入到容器镜像服务.选择左侧最后一个项目 镜像加速器 选择CentOS将代码sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://mkpgkzgu.mirror.aliyuncs.com"]}EOFsudo systemctl daemon

2020-09-11 00:28:18 137

原创 Docker容器ElasticSearch踩坑:启动ElasticSearch闪退

ElasticSearch是一个很娇气的东西对于它运行来说的话 对于电脑的内存要求比较高如果运行闪退 那么多半是你的ES嫌弃你的虚拟机了.这时候 我们就要给他更高的内存来支撑他的运行.这里提供两个方法:一次性的简便方法输入代码sysctl -w vm.max_map_count=262144然后重启elastatic search容器即可.永久生效的方法如果觉得每次启动都执行上边的方法太麻烦的话我们可以采用这种短痛的一劳永逸的方法编辑 etc下的sysctl.conf文件vi /e

2020-09-11 00:10:25 1607 1

原创 Linux-CentOS7:设置Linux虚拟机网络开机自启动

修改系统网络的配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33将ONBOOT=no 改为ONBOOT=yes然后ESC:wq保存并退出即可.注意有的虚拟机的网卡可能不叫ens33所以在我们上边执行编辑系统网络配置文件的时候 路径可能有所不同命令大体不变化 只是改变一下网卡名称而已. 如下.vi /etc/sysconfig/network-scripts/ifcfg-网卡名称那么如何查看网卡名称呢?ifconfig这是

2020-09-10 22:08:10 1429 2

原创 Linux-CentOS7:安装Docker容器并配置开机自启

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。安装Docker容器输入命令yum install docker出现的提示全都输入y 回车继续即可.安装完成后可以利用docker -v检查是否成功,出现如下内容即为成功,.设置Docker开机自启动systemctl enable docker...

2020-09-10 21:58:58 305

原创 使用SpringBoot调用QQ的SMTP服务实现邮件发送功能

本文讲述的是利用SpringBoot框架 以及QQ邮箱的smtp服务实现邮件的发送功能.登录QQ邮箱 开启smtp服务.首先登录QQ邮箱 点击设置在邮箱设置里选择账户下拉找到如下位置. 开启POP3/SMTP服务 这里可能需要验证手机号 按照提示进行操作即可.开启成功后 复制好授权码待用.创建SpringBoot项目这里就正常创建SpringBoot项目即可 不需要勾选启动器.(可以勾选mail启动器 如果这里勾选了 可以跳过引入依赖步骤)引入依赖 <dependency

2020-09-10 18:07:30 2348 1

原创 SpringBoot整合第三方接口:整合阿里云短信服务实现短信发送 手机号验证功能

短信服务平台有很多 大家可以根据自己的需求随意选择.整合方式也是大同小异本文以阿里云短信服务平台为例.具体分为以下几个步骤:登录/注册阿里云平台 进入短信服务控制台前往 https://www.aliyun.com/ 登录.搜索短信服务 点击进入短信控制台如果之前没有开通过短信服务 这里需要开通 开通之后就可以进入了申请短信签名和短信模板点击左侧的国内消息 首先添加一个签名 点击添加签名个人用户可以申请一条验证码签名 根据自己的需求申请申请之后需要审核推荐使用真实的项目名称 最好附带

2020-09-10 17:10:01 1032

原创 纯前端 两个HTML页面之间如何传递和接收值?

跳转前页面传递:利用问号url传值(为保证数据安全这里可以加入btoa加密或其他可逆加密手法)window.location.href="result.html?id="+id;跳转后页面接收:利用分割url字符串来获得传递内容.(如若传递的时候进行了加密,这里需要解密)var id=decodeURIComponent(location.search.slice(1).split("=")[1]);...

2020-09-10 01:16:41 928 1

原创 nginx+keepalived搭建高可用nginx(集群)踩坑:配置都对 但是访问vip就是访问不进去?

解决方法原因是keepalived.conf配置中默认vrrp_strict打开了,需要把它注释掉。重启keepalived即可ping通。原因vrrp_strict的意思是:严格遵守VRRP协议.下列情况会阻止启动Keepalived:1.没有VIP地址2.单播邻居3.在VRRP版本2中有IPV6地址具体可以查看keepalived 配置文件参数详解https://blog.csdn.net/mofiu/article/details/76644012...

2020-09-09 22:30:19 1784 2

原创 编程题阶乘迷局:破局到优化的代码与思路分析

1.前言写本文的起因是在csdn看到一个比较有意思的博客原文链接:https://blog.csdn.net/dotnetstudio/article/details/103089463这篇文章只给定了情景和结果.并没有具体的分析 对于初学java编程的人来说 可能有些绕 一时间绕不出来.本文针对这篇文章的情景和结果进行详细的思路分析.2.情景给定一个整数,求该整数的阶乘,例如输入5,结果是5 X 4 X 3 X 2 X 1=120。3.解题方法以及思路传统解题方法及思路刚看到这个题目的时

2020-09-09 21:56:49 232

原创 Linux虚拟机启动后一直黑屏怎么办?

问题(踩坑)在使用Linux虚拟机的时候 有时会出现启动了虚拟机 然后就一直停留在黑屏界面的情况关机提示 虚拟机xxxx繁忙使用任务管理器强制结束再打开 就提示以独占方式锁定…失败解决方案像这种情况 我们可以通过Windows的cmd窗口来解决.以管理员身份运行cmd在dos命令窗口依次输入如下命令:netsh winsock resetnet stop VMAuthdServicenet start VMAuthdServicenet stop VMwareHostdnet sta

2020-09-09 21:19:19 4416

空空如也

空空如也

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

TA关注的人

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