自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot中的Mybatis分页插件-pagehelper的使用

很多时候我们写DAO层接口会写一个查询所有记录的方法,但是在数据量非常大的时候,查询所有记录会巨慢无比,这时我们就需要用到分页查询。pagehelper就是个很好的分页插件。1,配置pagehelper的项目地址:https://github.com/pagehelper/pagehelper-spring-boot我们只需在Maven中加入如下依赖即可:<dependency> <groupId>com.github.pagehelper</groupId

2021-07-16 15:51:11 1418 3

原创 在Spring Boot中使用Jackson过滤不必要字段

在开发接口的时候,我们通常想要过滤一些字段不返回给前端。例如前端需要查询一个用户,但是用户User类中通常有密码字段,我们不想返回密码字段给前端,应当怎么办呢?使用Jackson依赖即可完美解决。不过首先我们需要了解一些基本知识。1,什么是序列化/反序列化我们前后端交互的对象都需要使用Serializable接口,表示这个类的实例是可以序列化和反序列化的。Java的实例一般存在于内存里面,如果想要把这个对象在网络上传输或者是存放到本地,那么必须要使这个对象序列化,也就是说序列化把一个内存

2021-07-16 15:16:49 1991 3

原创 Git设置代理服务器

有些时候由于连不上git服务器而我们又需要推送代码,这时就需要设定git代理服务器。1,http和https代理如果说使用的是项目http或者https地址,就配置http与https代理即可,输入以下命令:git config --global http.proxy "socks5://地址:端口"git config --global https.proxy "socks5://地址:端口"例如设定本地代理:git config --global http.proxy "soc

2021-07-15 21:35:09 47252

原创 Git使用ssh密钥推送代码到仓库/拉取代码

在使用gitee或者github的时候,除了通过账户密码认证以访问仓库,更加推荐和安全的做法还是使用ssh密钥。1,本地生成ssh密钥对安装完成git之后打开git bash或者命令行,输入命令:ssh-keygen -t rsa -C "密钥名"密钥名自己取,可以是邮箱也可以是随意的命名。然后连按三次回车,密钥对就生成了!在C:\Users\你的用户名\.ssh目录下可以看到生成的密钥文件:2,添加公钥到gitee/github上面首先找到我们刚刚生成的公钥文件id.

2021-07-14 14:09:55 6242 2

原创 C#裁剪图片的方法

裁剪图片是我们生活中很常见的操作了。那么如何使用C#裁剪图片呢?首先我们需要明白,裁剪图片其实就是把原图中的某一个矩形区域给裁下来,我们需要确定这个矩形在图片中的坐标(x,y)以及矩形宽高。在C#中我们裁剪图片流程如下:从文件载入图片为Image对象: 创建新的空图像,并指定大小为裁剪完成后图片大小 通过Graphics对象把目标裁剪区域图片画到第二步创建的空图像 完成代码如下://从文件加载原图Image originImage = Image.FromFi...

2021-06-27 22:56:59 9206

原创 C#创建无边框可拖动窗口

如果说不想用C#默认窗口样式,我们肯定需要设定无边框窗口。不过无边框窗口无法拖动,要如何实现拖动呢?其实借助mouseDown,mouseUp和mouseMove事件即可完成,很简单。shoux

2021-06-04 23:32:25 1024

原创 C#实现把图片转换为ico格式

ico格式是我们常见的一种图标格式,曾经常常通过一些别的软件进行转换,现在研究了一下C#其实也可以进行转换。网上很多方法是通过Bitmap直接获取句柄转为Icon对象并保存,这样得到的ico

2021-06-04 21:37:19 2889 2

原创 Linux添加自定义服务(service文件)

Linux系统中也有“服务”这一说法,通过服务我们可以便捷地管理一些程序功能,也可以作为程序开机自启的一个手段之一。今天我来分享一下如何创建自己简易的Linux服务。1,新建服务文件每一个服务在Linux有它自己的对应的配置文件,这个文件可以通过文本编辑器编辑,扩展名为xxx.servive(xxx为服务名称)。这些文件位于/usr/lib/systemd/system目录下。在这个目录下新建service文件即可创建我们的服务。文件的内容结构如下:[Unit]Description=服

2021-05-23 16:58:24 24753 1

原创 certbot生成Let‘s Encrypt免费证书并配置到Spring Boot

Let's Encrypt是知名的免费SSL证书之一。这里分享一下今天研究的使用certbot工具生成免费ssl证书。1,连接服务器并安装certbot连接服务器,输入命令安装certbot:sudo apt install certbot2,开始手动生成证书执行以下命令:sudo certbot certonly -d "你的域名" -d "*.你的域名" --manual --preferred-challenges dns --server https://acme-v02

2021-05-23 12:19:11 1129 1

原创 Spring Boot配置SSL证书(开启https)

https会使我们的网站更加安全,起码看起来似乎好一些。这里分享Spring Boot配置https的步骤。1,去阿里云或者腾讯云等等申请SSL证书个人用户申请免费证书即可。阿里云免费证书申请方法然后在我们的控制台-SSL证书里面可以添加免费证书:然后点证书申请:根据其中指示填写完信息后,会让你给域名添加相应TXT记录,添加后即可申请。大约1-15分钟后证书申请完毕。然后在列表中点击下载按钮:下载jks格式:然后会得到个压缩包,里面有jks证书和密码。..

2021-05-22 13:23:18 3495 1

原创 纯ipv6的linux服务器网络配置方案

昨天购买了一个外国的服务器,为了“减少成本”,我没有配置ipv4,而只有ipv6。然后发现服务器用apt update无法连接镜像源进行更新。后来查了资料才发现,仅ipv6的服务器是无法解析并连接ipv4的域名或地址的,而大多数镜像源可能还是ipv4的,因此需要修改服务器的dns并配置ipv6镜像源。1,配置服务器的DNS打开/etc/resolv.conf这个文件,可以先将其中清空,然后加入下列内容设定dns:#谷歌 IPv6 DNSnameserver 2001:4860:4860::8

2021-05-21 10:52:18 1944

原创 vs2019下载离线安装包并离线安装

一般下载Visual Studio都是使用在线安装包。不过有时候我们需要下载离线安装包以到网不好的电脑使用或者供以后安装,则可以先下载离线包再离线安装。官方文档1,下载vs安装程序在官网下载对应版本的安装程序,这里社区版为例:下面,我们将通过使用命令行调用该安装程序的方式下载离线包。2,命令行调用下载离线包下载的安装程序先可以重命名,方便待会命令行调用,这里我将其命名为vs.exe:使用命令行调用以下载离线包,命令行格式如下:vs安装程序.exe --layout "指

2021-03-27 23:11:14 15491 4

原创 Linux下安装中文输入法总结

众所周知,fcitx和ibus是两款很好用的Linux中文输入法框架。下面来说一下其安装方法以及会踩的坑。首先fcitx和ibus是不能共存的,两者只能装其一,所以安装其中一个时最好先使用sudo apt purge命令卸载。卸载fcitx:sudo apt purge fcitx*sudo apt autoremove卸载ibus:sudo apt purge ibus*sudo apt autoremove1,安装fcitx系列输入法直接通过apt命令安装即可,下列是

2021-03-23 16:39:42 21113 4

原创 Linux安装和配置lxqt桌面

lxqt是linux下一款非常轻量级、且非常好用家简洁的桌面环境,非常适合配置不太高的电脑使用。1,安装lxqt安装的方法很简单,执行下列命令即可:sudo apt install lxqt稍等一下就安装完成了。注销,选择会话为lxqt即可进入桌面。2,设置桌面在开始程序菜单打开首选项 - LXQt 设置 - LXQt 配置中心即可打开设置进行桌面配置。在会话配置中可设定默认程序/自启动等等:在桌面选项中可以设定图标和桌面壁纸:在电源管理中可以设定合盖、熄屏

2021-03-19 23:30:38 7136

原创 Linux安装lightdm - 轻量级的通用显示管理器

最近使用Debian的时候,发现Gnome的gdm3和KDE的sddm都会在一些特定型号CPU的电脑上出问题。因此决定安装lightdm。1,什么是显示管理器简单来说, 显示管理器 (display manager) (DM)是一个为你的Linux发行版提供图形登录功能的程序。它控制用户会话并管理用户认证。显示管理器会在你输入用户名和密码后,立即启动显示服务器并加载桌面环境。我们平时打开linux时的那个登录界面,就是显示管理器。gdm3就是gnome桌面环境使用的显示管理器,同样KDE使用的是

2021-03-18 17:30:54 12577 1

原创 Linux编译node.js

1,编译准备工作先去官网下载node.js源码,并解压:然后在系统上安装好编译所需工具:sudo apt install gcc g++ gcc-multilib g++-multilib make python3 python3-distutils2,进入源码文件夹开始编译使用cd命令进入下载解压后的源码文件夹里面,执行下列命令开始编译:chmod +x ./configure./configuremakemake命令还可以使用多线程,例如使用4线程编译:ma

2021-03-16 20:54:55 794

原创 MySQL实现排名

排名在我们日常生活中并不陌生,例如玩游戏的分数等等排名,都需要用到SQL语句查询数据库。不过具体怎么通过SQL语句实现排名呢?为了举例说明,我先随便定义一个表和一些数据,以便于下面的查询:create table `playertable` ( `id` bigint not null, `nickname` varchar(32) not null, `age` int not null, `score` int not null, primary key (`id`)) engin

2021-03-08 16:02:12 787 2

原创 JavaScript中的对象复制

所有的面向对象的语言中,都存在着对象引用、复制等等问题,对于初学者来说可能难以理解。今天我来总结一下JavaScript中对象复制。首先我们要知道JavaScript中的数据分为基本类型(单类型)和引用类型。除了Object对象,其余都是基本类型例如我们常见的String、Number、boolean、null、undefined。而数组、时间对象以及我们自定义的对象等等,都是继承自Object的,所以说都是引用类型。在js中对对象进行赋值时,基本类型会被直接复制,例如下:let a = 1;

2021-03-05 11:43:19 438 1

原创 JavaScript对象的基本使用方法(与Java的对比)

在面向对象的编程语言中,对象极其重要。不过JavaScript对于对象的操作似乎有一点点不同,但是中心思想仍然是一样的。在此我做个总结。1,基本对象在Java中,创建一个人类,大家都会这样做:先创建人类:public class Person { private String name; private String age; private String gender; public String getName() { return name; } publi

2021-03-04 20:23:37 2041 1

原创 js判断各种资源是否加载完成的方法汇总,资源预加载问题

将网站放在服务器后,因为服务器带宽问题,才发现很多资源比如图片、音频在网站打开后1分钟还没有加载,导致无法播放。所以说我决定使用js在最开头加一个判断资源是否加载完成的函数并运行,只有资源全加载完成了才能进入主页面。在网上查了很多都是说用onload,但是这只能判断文档dom树是否解析完成,但是音频、图片等等资源加载完成没是无法判断的。下面我将来一一分享我的方案。1,判断音频/视频是否加载完成音频,视频元素分别是<audio>、<vedio>,这两个元素都有ready

2021-03-03 16:04:35 7693 1

原创 在Spring Boot中配置Thymeleaf的模板路径

众所周知,Thymeleaf的模板文件默认是在项目文件夹的src\main\resources\templates目录下的。不过出于特殊需要,要修改其路径怎么办呢?在我们的项目配置文件application.properties中,添加如下配置:#Thymeleaf配置spring.thymeleaf.prefix=自定义的Thymeleaf的模板位置,jar内部以classpath:开头,外部路径使用file:开头spring.thymeleaf.suffix=自动匹配后缀spring.t

2021-03-01 22:57:17 7056 2

原创 Spring Boot实现文件上传

文件上传是网页常见的一个表单提交形式。实质上,文件上传是前端发送一个POST请求,后端接受即可。不过在Spring中怎么实现文件上传呢?一、上传单个文件1,前端先做一个建议的表单,代码如下:<form enctype="multipart/form-data" method="POST" action="/upload"> <input type="text" name="imgName" /> <input type="file" name=

2021-02-27 17:19:33 5047

原创 Spring Boot中常用数据库的配置

1,MySQL依赖: 添加Spring Web 添加MyBatis Framework 添加MySQL Driver 配置文件:spring.datasource.url=jdbc:mysql://mysql数据库地址:数据库端口/数据库名称?serverTimezone=GMT%2B8spring.datasource.username=用户名spring.datasource.password=密码2,Redis依赖:<dependency

2021-02-22 23:10:46 245

原创 Spring Boot资源文件问题总结(Spring Boot的静态资源访问,配置文件外置)

文件系统是我们开发过程中常常会接触的问题。那么在Spring框架中,文件的访问又是什么样的呢?今天在此做一个总结。1,file和classpath存放在电脑上实际位置的文件,在Spring中用file:开头表示。例如:file:a.txt 当前目录下的a.txt文件。当前路径在开发环境下即为maven项目的目录下(与pom.xml同目录下),在打包为jar文件后当前路径即为jar文件所在路径。file:D:\a.txt 表示绝对路径,在此不多赘述。而在Java内部当中,我们一般...

2021-02-22 22:44:14 1411

原创 Java环境变量设置总结(Java 8和Java 11+Windows和Linux)

现在使用java基本上不是8就是11版本。这两个版本设置环境变量方法有所不同,在此做一下总结。一,Windows环境1,java 8安装jdk8之后,找到jdk8安装位置(默认在:C:\Program Files\Java\jdk1.8.0_xxx,xxx表示版本号)然后右键-此电脑-属性-高级系统设置-环境变量。在系统变量一栏点击新建,变量名JAVA_HOME,值指定jdk8安装位置,保存。再新建,变量名classpath,值填入:.;%JAVA_HOME%\lib\dt.jar;%J

2021-02-11 16:08:33 1885 1

原创 Java 11使用jlink命令根据自己的程序定制精简版jre

曾经使用java 8进行开发时,做出来的程序如果要想给没安装java的人运行,就总是要把jre一起复制出来并和程序放一起。原本可能几十k的程序加上了jre就有上百M了,7z最大压缩后也有40几MB。不过java 11解决了这个问题。java 11没有jre了,可以按需生成一个精简版的jre,只需把需要用到的模块放入jre即可。配置完成jdk 11环境变量之后,就可以进行jre定制生成了。我这里有一个app.jar文件,通过jdeps命令来查看这个jar包运行需要什么模块。命令格式:jd

2021-02-10 20:21:28 1721 3

原创 Maven项目指定编译的java版本和源码编码

机器上安装了java 8和11两个版本,不过在使用Maven构建项目时为了兼容客户端,我们常常需要指定编译生成的jar包的java版本。也就是说,即使我平常使用的java 11,我仍然可以编译出java 8可以运行的jar包。修改项目的pom.xml中的<properties>节点如下:<properties> <java.version>1.8</java.version> <maven.compiler.source>

2021-02-10 20:04:51 2083

原创 C#释放内嵌的资源文件到指定位置(几种情况的讨论)

有时候写小程序我们只希望输出的程序只有一个exe文件而不希望附带其它任何东西。在C#中我们可以内嵌资源文件,并在程序运行时释放。下面通过几种情况来讨论资源文件释放方法。通常C#中我们不仅可以直接内嵌资源文件,还可以通过resx资源文件添加并内嵌资源。下面就这两种情况一一讨论。1,直接内嵌的资源文件可以看到我们引用过得资源文件都会放到项目的Resources文件夹下:右键资源文件-属性:在下面属性窗格-生成的操作设置为嵌入的文件:这样生成的程序,文件就会嵌入进去了!上面..

2021-01-28 13:32:04 3427 1

原创 Qt实现静态编译(Windows平台)

官网下载的Qt安装后默认只能动态编译,但是有时候我们又需要静态编译为单文件可执行exe文件。解决办法就是编译Qt的静态编译套件工具源码。我把自己编译好的套件也上传分享了,若想节省时间不自己编译也可以在文末的下载链接下载我自己编译好了的版本直接配置(直接参考第三步配置)。1,准备安装好Qt Creator Qt源码清华大学镜像站 Visual Studio Community 最新版 下载地址 Python2.7 下载地址 Perl下载地址 Ruby下载地址 jom多线程编译(非...

2021-01-26 20:09:11 8734 3

原创 给GCC编译出来的可执行文件添加图标

众所周知,我们使用Mingw或者TMD-GCC里面的命令行(gcc或者g++)编译出来的文件默认是没有图标的。那么应当如何给它加上图标呢?没有图标1, 先准备好一个ico图标文件,然后在ico文件同目录下建立一个文本文档,里面写入:1 ICON "图标文件名"2,然后把这个文本文档扩展名改为rc。例如我这里的:3,然后使用windres链接rc文件,链接输出文件扩展名为o:windres -i "你的rc文件" -o "输出的链接图标文件.o"例如我的:4,最后使..

2020-11-27 17:59:06 3293 4

原创 g++命令编译出来的文件体积过大解决方案

这几天在使用gcc编译器的g++编译cpp文件时,发现即使是一个很简单的代码文件编译出来的exe体积会达到3M以上。我也通过上网究其原因,来和大家分享一下解决方案。文件过大的原因在使用gcc编译器时编译出来的exe是带有符号信息的。符号信息是什么?简而言之就是应用程序的调试信息,专门用来作调试之用,其中储存了程序变量以及其余很多信息。但是我们编译出来exe并仅仅只是去使用它时是不需要这些符号信息的。下面可以看一个实例:我这里有一个main.cpp文件,使用g++命令编译,生成的exe文件:

2020-11-11 21:45:27 4592

原创 C语言或者C++中隐藏控制台窗口

很多时候希望写的程序在后台静默执行,不显示那个黑色的控制台窗口。通过网上的设定入口点方法并没有用。不过通过查各种资料发现可以用一个自带的API实现。首先可以写一个函数专门来隐藏窗口,再在main函数中引用函数即可。内容如下:void HideWindow() { HWND hwnd = FindWindow("ConsoleWindowClass", NULL); //处理顶级窗口的类名和窗口名称匹配指定的名字但不搜索子窗口 if (hwnd) { ShowWindow(hwnd, SW_

2020-10-25 11:10:01 7682 4

原创 在C语言/C++中把资源编译进exe可执行文件,并运行时释放资源

有时为了方便起见,我们会把资源文件(图片、声音等等)编译进exe程序,需要的时候释放出来。使用gcc可以实现这个东西。1、安装TDM-GCCTDM-GCC是推荐用的很好的编译器,基于mingw64改造,安装时会自动配置环境变量,简单方便。下载地址 备用地址2、准备资源文件并链接通过objcopy命令链接资源文件为o文件:objcopy -I binary -O elf64-x86-64 -B i386:x86-64 资源文件名 输出的链接文件名注意输出的文件扩展名要是o。比如我

2020-10-23 09:45:10 4687

原创 Windows下编译redis的方法

Redis只有linux版本的。但是如果说想要在Windows上使用其客户端/服务端怎么做呢?Cygwin是一个很好的Windows下的linux模拟环境,因此可以借助Cygwin来实现。1,安装cygwin在Cygwin官网下载页面下载其安装包:打开,按如图下操作:然后接下来会开始连接官网下载软件包,但是一般会失败。点击确定会让你切换镜像源,如图加入163的Cygwin源(http://mirrors.163.com/cygwin/),选中并下一...

2020-10-20 17:39:42 3751 5

原创 Redis在Linux服务器上安装与配置

Redis是现在最受欢迎的NoSQL数据库之一,最近也开始学习这个Redis了。所以我决定来分享一下Linux上的Redis的安装和配置。1,下载Redis源码并解压在官网下载页面下载源码,如图:我这里下载了一个redis-6.0.8.tar.gz 的文件,解压至当前目录并进入解压的文件夹(命令中操作的文件名根据自己下载的而定,此处命令以我自己的为例):tar -xvf redis-6.0.8.tar.gzcd redis-6.0.82,编译源代码首先需要确定的是我们的机器.

2020-10-19 21:26:37 576

原创 Windows setx命令的使用(命令行实现永久设置环境变量)

想着每次手动设置环境变量还是很麻烦,我决定使用setx命令加之批处理实现。在使用这个命令的过程中也踩了很多坑,在此想做一个总结。setx用法:设置用户环境变量setx "变量名" "变量值"设置计算机(全局)环境变量setx "变量名" "变量值" /m可见,在最后加上 /m即可设置全局环境变量。用法还是非常简单的。常见错误:1,错误: 无效语法。默认选项不允许超过 '2' 次。这是由于设定变量值中间包含空格导致。所以使用这个命令的时候,变量名和变量值最好都用英文

2020-09-29 17:31:04 24975 3

原创 在Linux服务器上安装MySQL并配置,远程连接

MySQL是用的很多的关系型数据库。今天来分享一下安装,配置及其连接教程。这里以Debian服务器安装MySQL 8为例。1,下载MySQL并解压上传去下载页面下载linux版的mysql安装包。然后下载了一个tar文件,解压你会发现解压出来了一堆deb文件,把这些文件全部上传到linux服务器的一个目录里,并cd命令进入那个目录,然后安装所有的deb文件:dpkg -i *.deb若安装后有错误信息,则执行:apt updateapt --fix-bro...

2020-09-03 23:13:30 1427

原创 Java中把jar包内文件资源释放出来的方法

有些时候我们需要读取并释放jar包内文件到jar包外。这样其实很简单,使用InputStream和OutputStream即可。文件在jar包中时,一般是先读取他们,再输出。以我这里为例:可以看到我这里的代码文件目录结构,代码文件夹根目录下有一个a.txt,还有一个test文件夹,其中有一个Test类和b.txt,sda.pdf。打包为jar后结构不变,如下:现在演示文件输出,把jar包内的test文件夹里面的那个sda.pdf输出,代码如下:InputStream is =.

2020-08-21 21:30:12 1605

原创 Maven打包时包含资源文件和源码到jar的方法

在使用Maven打包时,我们发现最终打包之后jar中只有已经编译完成的代码class,资源文件都没了,如果有资源文件需要打包进jar的话,直接打包jar无法正常工作。其实,在pom.xml中配置一下<build>节点即可实现把资源打包进来的操作。在<build>中添加以下内容:<resources> <resource> <directory>${basedir}/src/main/resources</d...

2020-08-20 23:10:15 2536

原创 发布自己的jar包到Maven中央仓库

Maven仍然是目前使用人数很多的、非常受欢迎的项目构建工具。其方便之处在于:我们只需在配置文件pom.xml中引入依赖和插件,他就可以自动从中央仓库下载、配置并运行程序。不过假设我们自己写了一个jar外部包,想放到maven中央仓库并使得别人和我们自己使用的时候更加方便,应该怎么做呢?一,去sonatype网站注册账户并申请工单 进入issues.sonatype.org,注册一个账户,然后点击“新建”按钮创建一个工单:如下图,项目选择:Community S...

2020-08-19 10:44:04 1387 1

空空如也

空空如也

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

TA关注的人

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