java
汣栀
这个作者很懒,什么都没留下…
展开
-
java中删除FTP文件失败问题(ftpclient.deletefile)
之前删除FTP指定文件夹下文件一直失败,找了半天发现是文件名的问题。使用ftpclient.deletefile(fileName)删除一直有问题开始猜测是权限原因,于是用ftp工具尝试删除,发现可以删除。那就有问题了。原因:FTP协议里面,规定文件名编码为iso-8859-1,所以目录名或文件名包含中文需要转码。解决方案:将中文的目录或文件名转为iso-8859-1编码的字符。参考代码: boolean dele = ftp.deleteFile(new String(fileName.原创 2022-02-18 10:29:50 · 3334 阅读 · 1 评论 -
IDEA项目启动报错
Cannot resolve jdk.tools:jdk.tools:1.8重新在配置下maven即可。Command line is too long. Shorten command line for VideoAnalysisApplication解决:原创 2021-11-10 14:19:32 · 832 阅读 · 0 评论 -
docker部署Springboot的三种方式(入门、jar包、脚本)
一、入门部署可参考上篇博客 入门方式二、jar包映射部署启动容器后,每次需更新jar包时,都得重新制作镜像,再重新制作容器。流程及其繁琐,效率极低。那如何在不更新镜像或者容器的前提下直接更新jar包完成部署呢?更新Dockerfile文件FROM openjdk:8-jdk-alpineVOLUME /tmpADD trainning-service-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=fi原创 2021-11-04 16:18:27 · 330 阅读 · 0 评论 -
docker简单部署Springboot项目
一、首先有一个Springboot项目,在它的src/main/docker文件件下创建Dockerfile文件# 基础镜像使用javaFROM openjdk:8-jdk-alpineVOLUME /tmpADD cetc-trainning-service-0.0.1-SNAPSHOT.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]解释下这个文件:VO原创 2021-11-03 11:03:54 · 270 阅读 · 0 评论 -
docker镜像下载到本地并在其他服务器上恢复
平常我们下载docker镜像会通过配置国内源来加速下载,但是有时候会有另外的需求,比如某个机器不能联网,我们就需要从其他机器下载,打包后,拷贝到这个机器。1. 首先找到有网的服务器下载需要的镜像docker search ganglia2. 直接将镜像pull下来docker pull wookietreiber/ganglia3. 查看镜像docker images保存到本地(7938b6949adc为镜像ID)docker save 7938b6949adc > /hom原创 2021-10-20 10:39:37 · 1011 阅读 · 0 评论 -
分布式与集群的区别
分布式与集群的区别分布式是指将不同的业务分布到不同的地方。而集群是指将几台服务器集中在一起,实在同一个业务。分布式的每一个节点,都可以用来做集群。而集群不一定就是分布式了例如:互联网上访问的人多了,就可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将任务交给哪台去完成。而分布式,从狭义上理解,也与集群差不多,但是它的组织比较松散,不像集群,有一定组织性,一台服务器宕了,其他的服务器可以顶上来。分布式的每原创 2021-10-14 09:24:24 · 190 阅读 · 1 评论 -
Fastdfs读取文件内容
1、首先拿到fastdfs上对应的id2、以前用的是tomcat java利用前端上传到指定文件位置,然后java读取文件。但是现在用的fastdfs,没法用stream去读取文件更谈不上解析,后想到了OkHttpClietString txtId = vo.getTxtId();if(txtId!=null){ OkHttpClient httpClient = new OkHttpClient(); Request request = new Request.Builder(原创 2021-09-28 17:07:59 · 1324 阅读 · 0 评论 -
Mybatis分页查询避免两次查询同时返回总数和数据(一条SQL直接查询)
一、 场景:mysql分页查询一般都需要给前端返回一个总数,便于前端人员计算总页数。以前的处理办法是查询两次数据库,现在想提升下效率。二、处理方法:SELECT SQL_CALC_FOUND_ROWS * FROM [table] WHERE ...... limit M, N;SELECT FOUND_ROWS();SQL_CALC_FOUND_ROWS 告诉MySQL将sql所处理的行数记录下来FOUND_ROWS() 则取到了这个纪录。三、controller层:public Pa原创 2021-09-24 14:58:11 · 4434 阅读 · 0 评论 -
Java使用递归重装数据
首先查询出所有数据集合: List<RoleMenu> roleMenusList = menuController.selectMenuId(username); List<Map<String, Object>> treeList = getSourc(roleMenusList,null);递归重装数据://递归重装数据 private List<Map<String, Object>> getSourc(List<R原创 2021-09-10 10:37:50 · 402 阅读 · 2 评论 -
多线程环境下SQLite数据库并发死锁问题(database is locked)
问题:我这里的问题是多线程情况下没有及时关闭数据库又重新打开了数据库的连接,解决方式是在获取数据库连接的时候采用单例模式。一、SQLite为什么会出现这种问题?首先要搞清楚sqlite3自身的机制:sqlite3支持多线程同时读操作,但不支持多线程同时写操作。同一时刻只能有一个线程去进行写操作,并且在一个线程进行写操作的时候,其他线程是不能进行读操作的。当一个线程正在写操作时,其他线程的读写都会返回操作失败的错误,显示数据库文件被锁住。对于多线程写数据库的情况,Sqlite3不能实现同时写原创 2021-08-24 11:29:37 · 6176 阅读 · 0 评论 -
SQLite数据库基本使用(Java)
一、是什么?SQLite是一个进程内的轻量级嵌入式数据库,它的数据库就是一个文件,实现了自给自足、无服务器、零配置的、事务性的SQL数据库引擎。它是一个零配置的数据库,这就体现出来SQLite与其他数据库的最大的区别:SQLite不需要在系统中配置,直接可以使用。且SQLite不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite可直接访问其存储文件。二、有什么优势?不需要配置,不需要安装和管理不需要一个单独的服务器进程或操作的系统(无服务器的)一个完整的SQLite数原创 2021-08-24 11:02:35 · 2493 阅读 · 0 评论 -
SpringCloud--Gateway网关的实现
一、Springcloud Gateway概述spring cloud gateway旨在提供一种简单而有效的方法来路由到api,并为它们提供跨领域的关注点,例如:安全性、监视/度量和恢复能力。客户端向Spring云网关发出请求。如果网关处理程序映射确定请求与路由匹配,则将其发送到网关Web处理程序。此处理程序通过特定于请求的筛选器链运行请求。过滤器被虚线分割的原因是,过滤器可以在代理请求发送之前和之后运行逻辑。执行所有“预”过滤器逻辑。然后发出代理请求。在发出代理请求之后,运行“post”过滤器逻辑。原创 2021-08-11 11:09:15 · 909 阅读 · 0 评论 -
使用Docker搭建Kibana--linux系统
一、安装首先查看你es的版本 ,并查看本地服务器是否搭建了es(我这里映射的端口是9201)然后命令拉取跟es版本一样的kibanadocker pull kibana:7.4.2docker images 即可查看到拉取的kibana二、启动docker run -d --name kibana --network elasticsearch_net -e ELASTICSEARCH_URL=http://10.168.103.55:9200 -p 5601:5601 kibana:7原创 2021-07-28 15:19:15 · 293 阅读 · 0 评论 -
服务网关的作用
一、什么是服务网关服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去;2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)。二、为什么需要服务网关上述所说的横切功能(以权限校验为例)可以写在三个位置:每个服务自己实现一遍写到一个公共的服务中,然后其他所有服务都依赖这个服务写到服务网关的前置过滤器中,所有请求过来进行权限校验第一种,缺点太明显,基本不用;第二种,原创 2021-06-08 09:57:58 · 2406 阅读 · 0 评论 -
java实现服务注册到Nacos
1. 所需jar包 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org原创 2021-06-08 09:29:21 · 2433 阅读 · 0 评论 -
Spring boot 配置文件 application.yml和 bootstrap.yml区别
前言:SpringBoot默认支持properties和YAML两种格式的配置文件。前者格式简单,但是只支持键值对。如果需要表达列表,最好使用YAML格式。SpringBoot支持自动加载约定名称的配置文件,例如application.yml。如果是自定义名称的配置文件,就要另找方法了。可惜的是,不像前者有@PropertySource这样方便的加载方式,后者的加载必须借助编码逻辑来实现。一、bootstrap.yml(bootstrap.properties)与application.yml(appl原创 2021-06-07 15:20:31 · 128 阅读 · 0 评论 -
Mysql数据库优化
1. 选取最适用的字段属性mysql可以很好的支持大数据量的存取,但是一般来说,数据库中的表越小,在他上面执行的查询语句就越快。因此在建表的时候,为了获取更好的性能,我们可以将表中的字段宽度设的尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。另外一个提高效率的方法是在可能的情况原创 2021-05-24 11:01:24 · 93 阅读 · 0 评论 -
RestTemplate介绍与使用
RestTemplate 简介RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 RestOperations 接口,其中 RestOperations 接口定义了基本的 RESTful 操作,这些操作在原创 2021-05-18 16:30:04 · 233 阅读 · 0 评论 -
AspectJ中的JoinPoint方法概要
AspectJ中的切入点匹配的执行点称作连接的(Join Point),在通知方法中可以声明一个JoinPoint类型的参数。通过JoinPoint可以访问连接点的细节。下面简要介绍JponPoint的方法:1.java.lang.Object[] getArgs():获取连接点方法运行时的入参列表;2.Signature getSignature() :获取连接点的方法签名对象;3.java.lang.Object getTarget() :获取连接点所在的目标对象;4.java.lang.Obj原创 2021-03-18 15:05:58 · 557 阅读 · 0 评论 -
SpringAop实现日志记录
首先添加jar包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>package com.kq.configmanager.annotation;import java.lang.annotation.*;@Documented@T原创 2021-03-18 14:57:46 · 187 阅读 · 1 评论 -
Java调用C++动态库--Centos系统
将封装好的生成拇指图缩略图的动态库放在centos系统指定路径下:/usr/local/dss/DLL/DLLImageResample_linux/bin/如果不配置环境变量则会报找不到路径错误:(其实是有的)需要在配置下环境变量:配置动态库位置:LD_LIBRARY_PATH:这个环境变量指示动态连接器可以装载动态库的路径。查看:可以通过env查看LD_LIBRARY_PATH内的值。vim etc/profile添加如下内容: LD_LIBRARY_PATH=$LD_LIB原创 2021-01-21 17:16:48 · 345 阅读 · 1 评论 -
java解决打jar包Recourse下配置文件打包异常
在pom.xml文件下添加如下内容:<!--配置打包时不过滤非java文件开始 --> <!--说明,在进行模块化开发打jar包时,maven会将非java文件过滤掉, xml,properties配置文件等,但是这些文件又是必需的, 使用此配置可以在打包时将不会过滤这些必需的配置文件。 --><build> <!--<finalName>${project.artif原创 2021-01-12 16:08:35 · 223 阅读 · 0 评论 -
Docker安装-02
Linux CentOS Docker 安装Docker支持以下的CentOS版本:CentOS 7 (64-bit)CentOS 6.5 (64-bit) 或更高的版本前提条件目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。使用命令查看系统版原创 2020-12-15 14:45:45 · 120 阅读 · 0 评论 -
Docker简介-01
Docker三要素:一.镜像(Image)Docker镜像(Image)就是一个只读的模板,镜像可以用来创建Docker容器,一个镜像可以创建很多容器。Docker面向对象镜像类(class)容器实例对象二.容器(Container)1.Docker利用容器(Container)独立运行一个或一组应用2.容器使用镜像创建的运行实例3.容器可以被启动、开始、停止、删除,每个容器之间都是相互隔离的,保证平台的安全。4.可以把容器看做是一个简易版的Linu原创 2020-12-15 10:26:44 · 108 阅读 · 0 评论 -
JWT是个啥?JWT的原理和应用
https://baijiahao.baidu.com/s?id=1643676835054018117&wfr=spider&for=pc原创 2020-12-10 15:23:44 · 161 阅读 · 0 评论 -
Spring Security 简介
在 Web 应用开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大的调整,因而需要更多的开发时间,影响应用的发布进程。因此,从应用开发的第一天就应该把安全相关的因素考虑进来,并在整个应用的开发过程中。本文详细介绍了如何原创 2020-12-10 14:49:15 · 114 阅读 · 0 评论 -
Centos下安装Redis
https://www.cnblogs.com/zuidongfeng/p/8032505.html原创 2020-12-04 10:17:30 · 80 阅读 · 0 评论 -
SpringBoot类方法上加了@Async造成循环依赖的问题
https://blog.csdn.net/qq_33886821/article/details/102585214?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242原创 2020-10-21 14:03:59 · 609 阅读 · 1 评论 -
单机kafka搭建安全认证
一、Zookeeper配置SASL1、zoo.cfg文件配置为zookeeper添加SASL支持,在配置文件zoo.cfg添加,内容如下:authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProviderrequireClientAuthScheme=sasljaasLoginRenew=36000002.新建zk_server_jaas.conf文件,为Zookeeper添加账号认证信息这个文件你放在哪里随意原创 2020-10-15 16:36:11 · 597 阅读 · 0 评论 -
kafka安装测试是否成功
kafka安装测试是否安装成功zookeeper搭建成功原创 2020-10-14 17:51:33 · 817 阅读 · 0 评论 -
Zookeeper压缩包下载
https://archive.apache.org/dist/zookeeper/原创 2020-10-14 16:43:36 · 430 阅读 · 0 评论 -
Linux下常用的ftp命令操作
https://www.cnblogs.com/tssc/p/9593614.html原创 2020-09-25 15:50:36 · 99 阅读 · 0 评论 -
SpringBoot项目从FTP服务器下载图片
1. properties配置#ftpftp.url=192.168.101.1 ftp路径ftp.host=21 ftp端口号ftp.user=ftpadmin 用户名ftp.password=123456 密码ftppath:/ftpFile 上传的路径2. ftp下载工具类/* * ...原创 2020-04-14 10:28:24 · 1056 阅读 · 1 评论 -
SpringBoot项目上传图片到FTP服务器
1. properties配置#ftpftp.url=192.168.101.1 ftp路径ftp.host=21 ftp端口号ftp.user=ftpadmin 用户名ftp.password=123456 密码ftppath:/ftpFile 上传的路径2. ftp上传工具类 * Descri...原创 2020-04-09 12:50:37 · 564 阅读 · 2 评论 -
测试FTP是否搭建成功
1.cmd输入ftp、输入open命令2.输入【ip port】(ip和端口之间有空格)3.如果出现输入用户名的提示说明搭建成功原创 2019-12-16 15:45:44 · 2289 阅读 · 0 评论 -
Dubbo中Zookeeper搭建-02
前提:使用zookeeper需要先安装jdk下载路径http://www.apache.org/dist/zookeeper/选择自己需要的版本,选择扩展名为.tar.gz的下载下载后直接解压即可找到目录中的conf文件夹将zoo_sample.cfg复制一份并将文件名改为zoo.cfg并修改配置文件中的以下属性dataDir=D:\zookeeper\datadataLogD...原创 2019-04-09 20:53:09 · 158 阅读 · 0 评论