- 博客(114)
- 资源 (4)
- 收藏
- 关注
原创 Java 桥接模式(Bridge Pattern)是设计模式中的一种结构型设计模式,桥接模式的核心思想是将抽象与实现解耦
/ 实现化角色(Implementor)@OverrideSystem.out.println("绘制圆形...");
2024-06-15 10:13:23 521
原创 Java利用Scanner实现控制台文字游戏,Java实现猜数字游戏简易文字游戏,Java实现石头剪刀布简易文字游戏
【代码】Java利用Scanner实现控制台文字游戏,Java实现猜数字游戏简易文字游戏,Java实现石头剪刀布简易文字游戏。
2024-06-07 14:03:19 368
原创 Java装饰器模式,装饰器模式通常通过创建一个接口和一个或多个实现了该接口的类来开始,然后创建装饰器类,这些类也实现了相同的接口
2、创建一个实现了Component接口的简单类SimpleComponent3、创建一个装饰器基类Decorator,它也实现了Component接口,并持有一个对Component对象的引用4、创建一个具体的装饰器类,例如ConcreteDecoratorA,它添加了一些额外的功能5、编写一个测试类来展示如何使用装饰器
2024-06-06 11:40:56 659
原创 Java获取视频封面图,利用FFmpegFrameGrabber获取视频封面图
【代码】Java获取视频封面图,利用FFmpegFrameGrabber获取视频封面图。
2024-03-16 09:55:00 1597 1
原创 idea的Translation插件,使用有道翻译文字转语音出现TTS处理
IDEA --> File --> Plugins --> Marketplace 中搜索 Translation。1、打开host文件,地址:C:\Windows\System32\drivers\etc\hosts。2、添加 108.177.97.100 translate.googleapis.com到文件中。右击翻译–>播放语言。
2024-01-17 11:47:06 1519 1
原创 Java使用FTP连接到NAS读取文件信息,并将文件信息变成单向树形结构设置到对象中
【代码】Java使用FTP连接到NAS读取文件信息,并将文件信息变成单向树形结构设置到对象中。
2023-11-07 15:20:06 737 1
原创 Java对接数据万象API实现视频查重、视频相似度校验处理
2、基于腾讯云提供的官方签名方法,做一个适应于自己业务的方法封装。1、腾讯官方提供的签名工具类。
2023-11-01 15:21:07 535
原创 数据库时间为空时查询出现 UncategorizedSQLException: Error attempting to get column ‘update_time‘ from result set
数据库时间为空时查询出现 UncategorizedSQLException: Error attempting to get column 'update_time' from result set
2023-02-13 09:36:47 4313
原创 通过实现Filter与HttpServletRequestWrapper修改servlet请求中的getParameterMap参数
【代码】通过实现Filter与HttpServletRequestWrapper修改servlet请求中的getParameterMap参数。
2023-01-13 15:28:02 3688
原创 Java拦截器HandlerInterceptor重写preHandle方法时HttpServletRequest无法获取自定义请求头参数问题
Java拦截器配置
2023-01-03 18:59:33 8162 1
原创 idea利用插件达成低成本使用流程方案
1、进入settings设置页面2、进入设置页面中的插件 Plugins ,进入插件管理 Manage Plugin Repositories4、设置地址 https://plugins.zhile.io 点击OK5、在插件管理中的 Marketplace 搜索 Reset 插件,选择IDE Eval Reset插件进行安装6、安装后重启idea,然后点击Help菜单 >>> 点击EvalReset7、选中 Auto reset Before per restart
2022-05-27 09:32:08 263
原创 Spring cloud alibaba Nacos配置中心多数据源配置,Nacos使用占位符${}进行参数配置,Nacos配置MySQL持久化保存配置信息
引入相关依赖,${spring-cloud-starter.version}是我定义的版本变量,可以改成具体版本,例如:2.2.3.RELEASE<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>${
2022-05-26 15:52:34 8316 3
原创 gateway启动出现java.lang.IllegalArgumentException: Unable to find GatewayFilterFactory with name ****
具体错误Caused by: java.lang.IllegalArgumentException: Unable to find GatewayFilterFactory with name UserToken at org.springframework.cloud.gateway.route.RouteDefinitionRouteLocator.loadGatewayFilters(RouteDefinitionRouteLocator.java:187) ~[spring-cloud-gat
2022-05-23 13:50:35 7442 1
原创 Java多线程,线程安全与不安全的理解,程序的多线程并发编程的基础概念,进程与线程的区别是什么
简述程序的结构一个程序读入内存时,全部由0合1组成的(初代计算机是由电路配合灯泡进行处理的,0表示关闭1表示开启),从内存读入到CPU处理,需要通过总线;总线的类型总线分为三种:控制线、地址线、数据线;执行流程大概是执行文件读入内存 --》找到进程main地址 --》逐步读出指令与数据 --》处理并且写回内存进程与线程进程:一个程序是可以有多个进程的,进程与进程之间的内存资源相互隔离的,无法直接获取。总体概念是静态:进入内存后,分配对应的内存空间,同时产生一个主线程;线程:线程是建
2022-05-19 09:53:09 5591
原创 Linux使用shell脚本实现增量备份文件、Linux合并历史备份文件、Linux中find命令查询、tar -cvzf文件生成压缩包、Linux压缩包合并
#!bin/bash#数据存储的地址dataPath='opt/zndz/bin/logs/';#查询存储地址中两天内修改或创建的文件,${dataPath}前面加上/是因为存储路径中没有带上opt前面没有/findDataPaths=`find /${dataPath} -ctime -2 -type f`#临时目录,用于保存temp_path='/opt/temp_backups/';#创建临时文件目录sudo mkdir -p ${temp_path}#开始循环处理查询到的文件
2022-05-12 15:48:51 6454 1
原创 开发人员使用Linux系统时常用命令
文件创建、修改、删除1、文件目录创建mkdir dirName2、文件的创建touch fileName3、文件复制,到指定目录cp fileName /opt/4、文件名字修改mv fileName newFileName 5、文件删除rm -f fileName6、文件目录删除,目录中的文件也会删除rm -rf dirName根据修改时间搜索文件1、查询当前目录三天之内修改过的文件find /var/tono/data/0000000000 -ctime -3
2022-05-11 09:08:26 5730 2
原创 Linux centOS7安装ELK技术栈Linux系统安装ElasticSearch8.1.3、Kibana8.1.3、Logstash8.1.3、Filebeat8.1.3
ElasticSearch安装1、创建目录、进入目录下载压缩包,解压文件sudo mkdir -p /usr/local/ELK/escd /usr/local/ELK/essudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.1.3-linux-x86_64.tar.gzsudo tar zxvf elasticsearch-8.1.3-linux-x86_64.tar.gz 2、设置文
2022-04-25 18:21:42 7197 1
原创 Linux系统Centos7安装RabbitMQ使用压缩包配置环境变量RabbitMQ 3.8.16.tar.xz Erlang 24
文件的下载1、创建两个安装信息的存放文件夹sudo mkdir /usr/local/rabbitmqsudo mkdir /usr/local/erlang2、下载rabbitmq和erlangcd /usr/local/rabbitmqsudo wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.16/rabbitmq-server-generic-unix-3.8.16.tar.xzcd /us
2022-04-20 18:54:19 8435
原创 Linux系统中安装RabbitMq消息中间件CentOS8 yum install安装方式
1、先安装erlang,rabbitMq是用这个语言编写的yum install erlang2、下载rabbitMq 服务端wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-3.7.15-1.el7.noarch.rpm3、安装rabbitMqyum install rabbitmq-server-3.7.15-1.el7.noarch.rpm4、rabbi
2022-04-20 11:49:00 7941
原创 Linux安装MongoDB5.0.7的流程Linux系统下安装mongoDB5.0.7并且使用MongoDBCompass进行远程连接测试MongoDB设置账号密码验证登陆
1、前往官方平台下载对应版本下方是根据我自己系统下载对应的包2、创建存放MongoDB的目录,然后安装依赖,对文件进行解压并且修改文件名字cd /usr/localsudo yum install libcurl openssl xz-libstar -zxvf mongodb-linux-x86_64-enterprise-rhel80-5.0.7.tgzmv mongodb-linux-x86_64-enterprise-rhel80-5.0.7 mongo3、加入环境变量配置vim
2022-04-19 18:58:50 7397
原创 Linux安装Redis的流程Linux系统下安装Redis6.2.6版本并且配置后台启动修改连接密码进行远程连接测试
1、创建存放的文件夹mkdir /usr/local/redis2、进入创建的文件夹,然后使用wget进行下载cd /usr/local/rediswget https://download.redis.io/releases/redis-6.2.6.tar.gz3、解压下载文件tar xzf redis-6.2.6.tar.gz4、进入redis-6.2.6然后进行编译安装rediscd redis-6.2.6makemake install PREFIX=/usr/local
2022-04-19 13:49:25 6254
原创 Linux系统中安装Nginx进行单个端口代理和Nginx多个端口代理的配置
1、创建目录进入目录mkdir /usr/local/nginxcd /usr/local/nginx2、安装gcc-c++编译器、安装openssl、安装pcre包、安装zlib包yum install gcc-c++yum install -y openssl openssl-develyum install -y pcre pcre-develyum install -y zlib zlib-devel3、用wget命令下载nginx包,也可以自行去 https://nginx.o
2022-04-19 08:49:58 10742 1
原创 Java中的异常捕捉try为什么要尽量使用具体标准的异常,为什么不要直接使用Exception、RuntimeException、Error、Throwable,避免在try catch中进行业务编码
异常的超类编译时异常也可以叫做检查性Exception,检查类异常都是继承此接口,Error程序运行错误运行时异常RuntimeException这是java的默认配置。当你把一个异常定义在方法的throws定义中,你就可以不处理这个异常,系统会自动把该异常抛出。 而RuntimeException则是java设计中所有方法都默认定义在throws中了,所以只要你不捕获,就会一层一层的往上抛出。除非你显示的标准要捕获它。否则不会被捕获。也不会造成编译异常。其实大部分的RuntimeExcept
2022-04-18 11:55:43 7209
原创 minio纠删码分布式云磁盘部署Linux系统中使用挂载云端磁盘进行纠删码运行minio上传
在腾讯云中购买挂载磁盘,并且进行实例挂载Linux系统中查看已挂载的磁盘信息sudo fdisk -l创建文件系统格式sudo mkfs -t ext4 /dev/vdb执行以下命令,新建挂载点。以新建挂载点 /minio-data 为例sudo mkdir /minio-data将设备挂载至新建的挂载点,/dev/vdb为磁盘名字sudo mount /dev/vdb /minio-data配置完毕后查看挂载磁盘的挂载点信息,我这边是挂载了四个磁盘df -h纠删码启
2022-04-14 14:36:16 6560
原创 Linux系统下安装minio并设置SSL证书进行HTTPS远程连接访问
创建一个文件夹用于保存下载的miniomkdir /usr/local/minio在创建的文件夹中用wget下载Linux版本的minio服务端wget https://dl.min.io/server/minio/release/linux-amd64/minio下载完成后设置权限chmod +x minio启动minio,我启动是指定了端口号,如果不指定每次启动console-address都可能发生变化,我用的是远程客户端,需要配置白名单,至于/usr/local/minio/mi
2022-04-02 14:41:16 15601 6
原创 Linux系统中使用wget命令下载mysql并且安装,安装中有历史版本则先卸载删除历史版本数据,Linux系统中保姆级MySQL安装教程
安装前检查是否有安装过MySQL了1、执行mysql查询命令rpm -qa | grep mysql执行上方命令后,没有出现MySQL相关信息则表示未安装过,如下图如果执行命令后,出现了相关信息则需要进行卸载删除,如下图检查发现有安装则进行卸载删除,若是没有安装过则忽略次部分1、执行删除卸载命令,执行查询命令查看是否卸载rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64rpm -qa | grep mysql2、使用下面两个命令查找
2022-03-27 01:02:17 13104 3
原创 利用Executors.newSingleThreadScheduledExecutor()创建一个定时任务线程案例,其中利用CountDownLatch闭锁进行阻塞
public static void main(String[] args) throws ExecutionException, InterruptedException { AtomicInteger count = new AtomicInteger(); Thread thread = Thread.currentThread(); thread.setName("thread-1");//覆盖一下当前线程 String name =
2022-03-26 17:59:08 6289
原创 自定义一个SpringUtil用于通过静态方法获取被spring管理的bean对象,用于在静态方法中使用IOC中的bean或者是没有被spring管理的类中使用IOC容器的bean
@Componentpublic class SpringUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { i
2022-03-17 15:21:03 5889
原创 Java1.8函数式接口编程结合泛型简单使用案例demo
函数接口@FunctionalInterfacepublic interface DemoFunction<T> { T data();}引用函数接口的方法public class Demo<T extends Collection> { public Demo addData(T t, DemoFunction function) { if (t.contains(function.data())) { Syst
2022-03-11 15:06:06 6315 1
原创 java中利用jsoup获取csdn网页数据
Maven依赖 <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version> </dependency>Gradle依赖compile group: 'org.jsoup', na
2022-03-07 09:49:56 5862 1
原创 Java中Double类型设置指定保留小数点位数的方式
1、当前方式是保留两位小数点,并且四舍五入 BigDecimal b = new BigDecimal(546542.1214); double discount = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();2、当前方式是直接保留两位小数点 String format = new DecimalFormat("######0.00").format(5432.125465); Double d = Doub
2022-03-04 16:15:40 10396
原创 mysql驱动版本不匹配导致The driver has not received any packets from the server
om.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.crea
2022-03-03 14:42:59 6915
原创 spring boot使用application.yml的一些基础配置笔记、yml配置
server: port: 443 ssl: keyStoreType: PKCS12 key-store-password: ****** #密码 key-store: classpath:**********.pfx #证书文件 servlet: session: timeout: 3600 #session过期时间默认是30分钟spring: servlet: multipart: max-file-size: 20MB
2022-03-03 11:30:41 6203
原创 Java实现factory抽象工厂设计模式的小案例
1、先创建抽象层的工厂和对象/** * 抽象工厂类 */public abstract class AbstractFactory { public abstract EventAbstract createEvent(); public abstract ToolAbstract createTool();}/** * 事件抽象类 */public abstract class EventAbstract { public abstract void occ
2022-03-02 23:50:40 5934
原创 redis单线程为什么快、redis持久化机制、redis的过期删除策略
单线程快的原因:1、纯内存操作2、核心是基于非阻塞的IO多路复用3、避免了多线程频繁切换上下文的性能消耗持久化机制RDB:Redis DabaBase 将某个时间的内存快照,以二进制方式写入磁盘手动触发:1、save命令,会让redis出现阻塞,直到rdb持久化完成,才会去处理其他的命令,这个要慎用;2、bgsave名字,fork一个子进程执行持久化,主进程只有在fork的时候才会出现短暂阻塞,子进程创建完毕后,就可以响应其他处理请求了;自动触发1、save m n ,在指定m秒内,如果
2022-02-18 10:56:26 5966
jenkins.war
2021-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人