自定义博客皮肤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)
  • 收藏
  • 关注

原创 CentOs 环境下使用 Docker 部署 Ruoyi-Vue

首先使用 git 拉取整个项目,使用 idea 将项目打包成 jar (ruoyi-adimn.jar),并创建 Dockerfile 文件,与 jar 包同一目录下。直接使用项目中的 sql 文件可能存在问题,因为其中的 sql 语句没有指定数据库名称和创建数据库使用的字符集,因此在文件开头添加如下语句。上面部署的4个组件均部署在同一个宿主机上,网络配置使用的是默认的网桥,因此容器本身的ip是按照启动顺序随机分配;使用创建的镜像启动 Docker 容器,并进入容器拉起 ruoyi 后台服务;

2024-01-04 23:50:05 745 1

原创 EasyExcel实现追加写入文件

最近工作中需要将数据写入到excel中,写入的方式分两类,一类是直接写入excel文件,另一类是需要追加写入。直接写入excel的方式,可直接参考 easyexcel 的文档,采用的是按照模板填充。今天主要是分享追加写入的方式,因为项目的原因,没有使用数据库,所以汇总数据时,需要把每次测试数据追加写入的同一个 excel 文件中。本文主要参考了easyexcel已存在的excel里追加数据(csdn) 和 easyexcel往已存在的excel文件里追加数据(cnblog)两篇文章,并根据自己的需求进行了相

2022-07-10 16:57:43 18385 3

原创 记录一次夏令时和冬令时导致的项目BUG

记录一次夏令时和冬令时导致的项目BUG现象项目中计算证书开始和结束两个时间点之间的时间差(天数),同样的代码在国内正常运行,计算的天数和预期一致;但是在欧洲运行时计算的天数比国内的天数少了一天,导致校验失败。代码逻辑如下:private static void calcDaysWithDate(String startTime, String endTime) throws ParseException { SimpleDateFormat format = new SimpleDate

2021-12-12 23:11:48 615

原创 Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.4.4报错解决

新买电脑安装 Java 开发环境,先后下载并安装了 JDK 和 IDEA,使用 IDEA 创建了一个 SpringBoot 项目进行测试,在 Maven 的 setting.xml 文件中配置了阿里的镜像地址,但是不管怎么弄都没办法下载和自动导入pom文件中的包。主要报出以下错误:Could not transfer artifact org.springframework.boot:spring-boot-starter-parent...从字面意思理解,就是无法从当前配置的镜像源获取到指定的包,

2021-03-28 18:05:00 2801

原创 yaml文件中${REDIS_HOST:127.0.0.1}的含义

最近在学习eladmin项目时,发现其中的yaml文件中有如下的一段代码,之前也没遇到过,专门记录一下,也方便自己以后使用。redis: #数据库索引 database: ${REDIS_DB:0} host: ${REDIS_HOST:127.0.0.1} port: ${REDIS_PORT:6379} password: ${REDIS_PWD:} #连接超时时间 timeout: 5000这种表达方式是通过key来获取value,如果获取

2021-01-16 20:47:08 3118 1

转载 双重<c:forEach>循环,下拉显示重复

文章引用自:https://my.oschina.net/u/2489258/blog/1807781 有这么一个需求:就是一个用户中包含很多个角色,需要更新用户的角色时,在页面的下拉框中默认显示该用户的所拥有的所有角色。在这里使用<c:forEach>遍历所有的角色列表和用户所拥有的角色列表。 <div class="layui-block"> &l...

2019-07-13 22:25:59 876 1

原创 Tomcat的中文编码格式的处理

在开发web项目时,我们总会遇到中文乱码问题,此时就需要在代码中对中文进行解码,比较原始的方法是在每个 Servlet 中对单独对中文进行处理,但这样就会产生很多重复的代码。所以我们选择在 Filter 中处理中文编码问题,让每一个请求在到达 Servlet 之前,先在 Filter 中处理编码问题。这里我们分别通过装饰模式和动态代理模式两种方式来进行解决,在处理全局编码的同时,顺便对两种设计模...

2019-07-09 09:56:34 333

原创 Spring加载多个配置文件的注意事项

在进行 Java Web 项目开发时,不可避免的会使用到数据库,这时就需要配置一系列的数据库连接参数。通常情况下,我们会将数据库连接参数写入 .properties 的配置文件中,以减小这些参数和代码之间的耦合度,在程序运行时将其加载,读取其中的参数。在 Spring 框架中,我们可以通过多种方式将如下的配置文件导入到项目中。druid:driverClassName=com.mysql.jd...

2019-07-07 00:00:00 395

原创 Java Web学习笔记(一)--- request和response

上面的页面相信大家都很熟悉,我们在上网时,通常是以浏览器作为进入互联网的入口,在地址栏输入指定的网址或者在搜索引擎输入指定的字符串,浏览器就会跳转到特定的网页,将其展示出来。这其中的原理是什么呢?实际上我们输入URL后,我们的浏览器根据HTTP协议,向Web服务器发送了一个请求, Web服务器接到请求后进行处理,生成相应的响应,然后发送给浏览器,浏览器解析响应中的数据,然后将其展示在浏览器页面...

2019-06-22 16:08:14 977

转载 jQuery的attr()与prop()

文章转自:https://www.cnblogs.com/dolphinX/p/3348582.htmljQuery1.6中新添加了一个prop方法,看起来和用起来都和attr方法一样,这两个方法有什么区别呢?这要从HTMl 的attribute与property区别说起,attr与prop正是这两个东西的缩写。attribute与propertyattribute和property都可...

2019-06-21 18:33:39 262

转载 JS获取字符串实际长度(包含汉字)

方法一:var jmz = {};jmz.GetLength = function(str) { ///<summary>获得字符串实际长度,中文2,英文1</summary> ///<param name="str">要获得长度的字符串</param> var realLength = 0, len = str.leng...

2019-06-11 19:25:45 1104

原创 BeanUtils工具类转换日期类(Date)数据

在web项目中,我们总是从前端页面中获取数据并赋值到bean中,如果不使用MVC框架的话,就只能通过下面的这种方法进行赋值。User user = new User();user.setUsername(request.getParameter("username"));user.setPassword(request.getParameter("password"));user.setA...

2019-06-10 11:23:21 2760

转载 RandomAccessFile 文件读写中文乱码解决方案

RandomAccessFile 读写文件时,不管文件中保存的数据编码格式是什么,使用 RandomAccessFile对象方法的 readLine() 都会将编码格式转换成 ISO-8859-1 所以输出显示是还要在进行一次转码。package com.lincain.random;import java.io.File;import java.io.RandomAccessFile;...

2019-05-30 09:41:45 1583

原创 Netty学习笔记(七)--- Codec框架

我们知道,在网络中数据都是以字节码的形式来进行传输的,每个网络应用程序都必须定义如何解析在两个节点之间来回传输的原始字节码,以及如何将其和目标应用程序的数据格式做相互转换。编解码器就是用来处理这种逻辑的,它由编码器和解码器两个组件组成,其中编码器负责将消息转换为适合传输的格式,解码器则负责将网络字节流转换回应用程序的消息格式。Netty提供了编解码器框架,使得编写自定义的编解码器很容易,并且也很...

2019-05-28 10:02:18 694

原创 Netty学习笔记(六)--- ByteBuf

所有的网络通讯都涉及到数据的交互,数据的交互本质上就是字节序列的移动。为了实现网络通信的高效性,我们通常需要一个缓冲区来存储这些字节序列。在NIO中我们使用ByteBuffer作为它的字节容器,但是这个类的方法使用起来过于复杂,在日常的编程工作中显得有些繁琐。Netty为此提供了一款替代ByteBuffer的的组件:ByteBuf,它既解决了 JDK API 的局限性,又为网络应用程序的开发者提...

2019-05-26 11:11:31 708

原创 Netty学习笔记(五)--- ChannelHandler的执行顺序

在上一篇文章中,我们已经对ChannelHandler的执行顺序进行了介绍,一个I/O事件可以通过ChannelHandlerContext中的事件传播方法(如 ChannelHandlerContext.fireChannelRead(Object) 和ChannelHandlerContext.write(Object))传递到下一个类型相同的ChannelHandler上。下图取自Nett...

2019-05-23 17:41:42 2050

原创 Netty学习笔记(四)--- ChannelHandler

在前面的文章中,通过对引导和线程的介绍,我们知道了如何配置、引导客户端和服务端程序,以及程序的线程模型。它们构建了应用程序运行的框架,但一个完整的网络应用程序还需要更多的内容,其中包括数据应该如何处理。Netty为此提供了一个强大功能组件ChannelHanlder接口,它允许用户自定义ChannelHandler的实现来处理传入和传出的数据。在一款网络应用程序中,数据应该是其中最重要的部分,其...

2019-05-22 14:34:35 723

原创 Netty学习笔记(三)--- 线程模型和EventLoopGroup

Netty之所以成为高性能NIO框架,其精心设计的高效线程模型功不可没,Netty线程模型基于了一个著名的模式——Reactor模式。Reactor模型Reactor模型是一种经典的线程模型,也叫反应器模型,网上已经由很多对它的介绍,这里就不过多的介绍,只是简单介绍三种模型的特点。单线程模型Reactor单线程模型仅使用一个线程来处理所有的事情,包括服务端和客户端的连接,以及连接产生的的...

2019-05-15 16:20:16 420

原创 Netty学习笔记(二)--- Bootstrapping

在上一篇文章的Echo应用程序案例中,我们可以发现服务端和客服端都有一段引导代码。什么是引导呢,顾名思义,它就像一个调度员,将本来独立的各个组件引导到合适的位置,从而使整个系统能有序协调的运行。**引导(Bootstrapping)**是Netty对应用程序进行配置的过程,我们需要通过它来连接客户端和将服务端绑定到指定的端口上。它有两种类型:一种是用于服务端的ServerBootstrop,一种...

2019-05-14 14:13:42 922

转载 【Java】泛型中 extends 和 super 的区别?

![](<? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。<? extends T>:是指 “上界通配符(Upper Bounds Wildcards)”<? super T>:是指 “下界通配符(Lower Bounds Wildcards)”为...

2019-05-09 17:24:23 212

转载 Markdown 图片居中并添加标题

问题在编辑Markdown文档时,有时会遇到需要给图片添加标题的情况,Markdown添加图片的语法是这样的![说明](地址),然而问题来了,通常Markdown解析器会将说明作为<img>标签的alt属性,但是该属性只在图片加载失败的时候才会显示出来说明图片的内容,如何在图片下方设置标题呢?解决方法最简单的方法是,直接在图片的下一行写一个center标签,例如:<ce...

2019-05-06 21:43:05 31249 5

原创 Netty学习笔记(一)--- 初识Netty

什么是Netty如果在网络上搜索它,你可以在官网上看到如下内容:Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.简单说,Netty...

2019-05-06 21:00:45 495

原创 Java NIO 系列知识(四) Selector

Selector可以叫做为多路复用器,当然也可以叫做选择器。它是Java NIO的核心组件之一,是NIO编程的基础。如果说Channel和Buffer是手足,那Selector就应该算是大脑。它是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个Channel,从而管理多个网络连接。具体来讲,Selector会不断地轮询...

2019-04-24 23:16:30 269

原创 Java NIO系列知识(三) Channel

假如我们把NIO比作整个铁路系统,Channel(通道)就是整个系统中的轨道,作为NIO的核心组件之一,其承担着传输数据的作用。和标准IO相比,我们用stream(流)来传输数据,两者的区别在于Channel是双向的,而stream是单向的。另外,可直接向stream写入数据或从中读取数据,而Channel却不能,它需要和Buffer配合使用,就像乘客不能直接在轨道上传输,需要坐在火车上(这里的火...

2019-04-20 22:23:53 282

原创 Java NIO系列知识(二) Buffer

Buffer(缓冲区)作为java nio的三大核心组件之一 ,担任和数据直接打交道的任务,任何数据需要传输都必须储存在Buffer中。它本质上是一块可以写入数据,然后可以从中读取数据的内存(类似现实生活中的快递站),并提供了一系列方法,用来方便的访问该块内存。Buffer的分类Buffer是一个用于储存特定基本类型数据的容器,为了应对各种数据类型,java.nio.*中为它提供了多种(包括但...

2019-04-16 22:45:30 255

原创 Java NIO系列知识(一) Java NIO概述

I/O(输入/输出)指的是计算机与外界或者一个程序与计算机其余部分交互的接口,相当于人的耳朵和嘴巴。在java编程中,我们最初接触到的就是以流的形式完成I/O,正如它的名字:流,所有的I/O操作都只能是单向的一个或者多个字节的移动,而且还是阻塞式的,这就造成了效率的低下和资源的浪费。为了解决这个问题,在JDK1.4中引入了新方案:Java NIO,它既可以说是New IO,也可以说是No-Blo...

2019-04-15 00:44:57 155

原创 LeetCode--3.无重复字符的最长子串

题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 :输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。解题思路:根据给出的示例,首先将字符串通过toCharArray()转化为字符数组,然后遍历数组元素并将其插入的List集合中,同时判断集合中是否已经存在该字符。如果存在,则计算插入元素前的集合长度,...

2019-04-09 23:28:03 138

原创 LeetCode--2.两数相加

题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ...

2019-04-08 11:39:51 137

原创 HttpClient入门

目录简介主要功能使用步骤实例代码总结简介HTTP(超文本传输协议)相信大家都已经很熟悉了,作为Internet上使用最多、最重要的协议之一,已经被越来越多的应用程序用来访问网络资源,目前使用最广泛的Java语言也不例外。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP...

2019-04-06 23:48:36 171

转载 VMware虚拟机中的CentOS7安装Nginx后本机无法访问

VMware虚拟机中的CentOS7安装Nginx后本机无法访问在虚拟机centos7上安装nginx之后虚拟机内能访问,真机不能访问,修改iptables配置也不起作用,最后上网查找了资料后才发现centos7的防火墙改成了firewall。开放端口的方法如下:firewall-cmd --zone=public --add-port=80/tcp --permanent 命令含义:...

2019-03-16 22:52:45 333

原创 FastDFS和Nginx的整合

FastDFS和Nginx的整合FastDFS在4.06版本以后,就不再支持自带的http服务了,如果需要使用http服务来访问文件,则可以与Nginx结合部署,实现http服务。本文主要介绍FastDFS和Nginx如何进行整合,如果你还没安装配置这两个服务,可参考我的另外两篇文章:FastDFS的安装与配置和Nginx的安装和配置。二者的整合还要依赖fastdfs-nginx-modul...

2019-03-16 22:46:20 378

原创 Nginx的安装和配置

安装Nginx1.下载并解压安装包2.安装依赖包3.安装Nginx首先进入nginx的解压目录,分别执行如下命令:sudo ./configure;编译文件:sudo make;安装:sudo make install至此Nginx和依赖包都安装完成,下面试试能否成功启动Nginx。移动至Nginx安装目录下的sbin文件夹下,该文件夹下有一个nginx文件,执行该文件即可启动...

2019-03-15 13:09:02 169

原创 使用$.getJSON对外部变量进行赋值

使用$.getJSON对外部变量进行赋值时的问题淘淘项目中商品信息和商品类目分别采用tb_item和tb_item_cat两张表进行保存,而在Service层进行查询时采用的是单表查询,只能查询出商品类目的ID,在EasyUI的表单中显示效果就有些不直观。查看数据库表tb_item的结构,其中的status的类型为tinyint,但是表单中的形式却表现为字符串。查看了页面代码,发现状态一栏调...

2019-03-07 06:13:00 1751 2

原创 FastDFS的安装与配置

这里写自定义目录标题FastDFS和Nginx的安装与配置新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入Fa...

2019-02-26 10:46:56 293

原创 Amcharts4使用笔记

Amcharts4使用笔记最近练手的项目中,需要在页面显示柱状图、饼型图等,视频教程中使用的是amchart1.6,而现在最新的技术已经到amcharts4了。之前的文件配置方式已经不适用了,经过两天的摸索,终于用最新的amcharts4实现了需求。首先,下载amcharts4并解压,依次进入amcharts4&amp;gt;examples,有javascript和json两种配置方式,进入java...

2019-01-28 15:56:31 4760 1

原创 Java集合--ArrayList知识总结

Java集合–ArrayList知识梳理文章目录Java集合--ArrayList知识梳理概况介绍概况介绍ArrayList作为Java集合框架下常用的数据结构,其类的声明如下:public class ArrayList&amp;amp;amp;amp;amp;amp;lt;E&amp;amp;amp;amp;amp;amp;gt; extends AbstractList&amp;amp;amp;amp;amp;amp;lt;E&amp;amp;amp;a

2018-10-28 16:02:25 194

原创 LeetCode--206.反转链表

单链表反转的实现作为一道经典的面试题,链表反转说起来容易,真正要写出代码还是有一点难度(对于新手),在试错了好几次后,总算是磕磕绊绊的写出来了,下面将代码的思路记录下来。链表代码如下:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode nex...

2018-10-26 13:00:54 198 1

原创 Java基础--I/O流知识总结

对IO的理解文章目录对IO的理解引言流Java中IO的结构体系InputStream(字节输入流)OutputStream (字节输出流)Reader (字符输入流)Writer (字符输出流)引言I/O(输入/输出)应该算是所有程序都必需的一部分,使用输入机制,允许程序读取外部的数据资源、接收用户输入;使用输出机制,允许程序记录允许状态,并将数据输出到外部设备。Java的IO是通过java...

2018-10-21 00:03:36 484

转载 执行git push出现"Everything up-to-date"

执行git push出现"Everything up-to-date"向github的项目push新的修改时,出现Everything up-to-date的提示。原因可能是:没有add新的修改;没有将修改commit到仓库;如果上面两个步骤都成功执行,还出现这个错误是因为创建的目录下是空的,目录下必须有文件才能git push上传成功。如果上面两个步骤都成功执行,还出现这个错误是因...

2018-09-20 22:24:56 719

原创 Eclipse的启动耗时插件

Eclipse的启动耗时插件最近在看周志明老师的《深入理解Java虚拟机》,其中提到了关于Eclipse的性能调优,涉及到查看启动时间,需要编写一个查看Eclipse启动时间的插件,于是参考作者提供的代码,自己编写了一个,将其记录下拉作为笔记。创建工程首先通过New--&amp;gt;Project--&amp;gt;Plug-in Project创建新的项目。此处不需要设置,直接点击Ne...

2018-09-13 11:23:51 479 1

空空如也

空空如也

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

TA关注的人

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