自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 docker离线安装及部署各类中间件(x86系统架构)

版本:docker-23.0.6.tgz。

2024-07-22 16:25:55 209

原创 springboot中创建公共线程池并简单调用

【代码】springboot中创建公共线程池并简单调用。

2023-12-07 11:02:02 660

原创 layui中图片视频多文件的上传和下载

【代码】layui中图片视频多文件的上传和下载。

2023-11-20 10:39:34 1007

原创 用java编写一个视频转码器

【代码】用java编写一个视频转码器。

2023-11-16 08:54:29 314

原创 java中动态生成word并转换为pdf

1、引入依赖包,这里技术选用freemark和aspose,freemark用来生成word和动态数据填充,aspose用于把word转换为pdf。系统平台需要做一个功能,在某菜单页面输入条件参数,查询生成一个pdf报告,既可在线查看,也可导出。3、aspose凭证,aspose转换word为pdf默认是有水印的,使用凭证去除。2、word模板处理,将word模板另存为xml格式,可以将其放在项目同级目录下。6、word生成接口和在线预览接口。5、写入数据填充模板。

2023-10-17 11:49:20 891 4

原创 springboot中请求地址转发方案

(登录接口比较特殊,登录在后端是写在主服务内的,zuul网关不会进行拦截,这里单独注册)在平台注册增删改查四个接口地址,然后在前端将所有接口封装成这四个接口,并在请求参数内传递真实的接口地址,通过平台转发传递到后端之后,后端对应写出这四个公共接口,再通过这四个接口请求参数内的接口地址,转发到对应接口上。现有一个平台,如果在上面发布软件,需要在平台注册所有的接口,注册好后平台会给每一个接口都提供一个不同的新地址,在前端调用请求的时候,必须请求平台提供的地址,然后平台会替前端转发到真实的地址去请求后端。

2023-05-31 14:26:19 3887

转载 nginx安装及stream流模块的配置

stream模块一般用于tcp/UDP数据流的代理和负载均衡,可以通过stream模块代理转发TCP消息。ngx_stream_core_module模块由1.9.0版提供。默认情况下,没有构建此模块。-必须使用-with stream配置参数启用。也就是说,必须在使用./configure --with-stream编译时添加流模块。流模块的使用方法与http模块相同,语法也基本相同。

2023-03-30 10:43:57 8986 4

原创 centos7下安装highgodb及集成到springboot项目中

说明:在上面执行初始化数据库命令时,会要求设置数据库超级用户(管理员 highgo)的密码,提示输密码、二次确认密码。(3)生成service文件:/usr/lib/systemd/system/hgdb-enterprise-6.0.4.service。1、安装包下载地址:https://www.highgo.com/down_enterprise.html。参考文档:http://www.postgres.cn/docs/12/index.html。(1)切换到 highgo 用户。

2022-12-28 17:16:37 983

原创 linux中oracle数据库exp和imp导入导出的基本使用

inore=y:不存在表,创建表并导入数据;若已存在表,忽略创建表再导入。(注:此处file指定默认路径为/home/oracle/)full=y:导入文件中全部内容,有可能有多个用户的内容。登录linux的oracle用户。

2022-10-19 11:18:32 5492

转载 SpringMVC注解RequestParam和RequestBody对比

(1)POST请求application/json:json字符串部分不可用,url中的?后面添加参数可用form-data、x-www-form-urlencoded:可用,但是要将Headers里的Content-Type删掉application/json:json字符串部分不可用,url中的?后面添加参数即可用form-data、x-www-form-urlencoded:可用,且参数可以没有顺序(即前端传过来的参数或者url中的参数顺序不必和后台接口中的参数顺序一致,

2022-10-13 16:12:38 324

原创 JS中拼接dom元素时,处理其事件传参(字符串参数)问题

我们在做前后端数据交互时,往往需要在前端js写入动态的dom对象,例如下面代码:这里我们可以发现其中dom对象带有一个点击事件并传递了一个叫"javascript"的参数,此时我们触发点击事件打印一下这个参数会发现:这是因为浏览器将"javascript"这个参数解析成了一个变量,而不是直接传递这个字符串,所以报错未定义。使用转义符 \ ,给变量添加引号,将变量转化为字符串。......

2022-07-13 10:12:50 1477

转载 oracle建表空间键用户模板语句

create tablespace 表空间名 datafile '/oradata/orcl/lxw_data_01.ora' size 30G; --或者create tablespace 表空间名 datafile '/oradata/orcl/lxw_data_01.ora' size 100M autoextend on next 10M maxsize unlimited;-- 大小 100M,每次 10M 自动增大,最大不限制 -- 通过查看 cat /etc/oraInst.l.

2022-05-07 11:10:46 140

转载 Windows自带的端口转发netsh interface portproxy

一. 问题描述A (内网:192.168.88.100)服务器连接在公网上B (内网:192.168.88.110)服务器位于内网中B服务器有一个使用9988端口的TCP程序需要被公网访问,但不能改变网络拓扑架构。二、问题解决新增端口转发:首先打开命令提示符(cmd)netsh interface portproxy add v4tov4 listenport=监听端口 connectaddress=转发到的地址 connectport=转发到的端口例子: netsh interfac

2022-05-05 14:45:48 938

转载 SpringBoot + Redis + 注解 + 拦截器来实现接口幂等性校验

一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次比如:-订单接口, 不能多次创建订单-支付接口, 重复支付同一笔订单只能扣一次钱-支付宝回调接口, 可能会多次回调, 必须处理重复回调-普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次等等二、常见解决方案-唯一索引 – 防止新增脏数据-token机制 – 防止页面重复提交-悲观锁 – 获取数据的时候加锁(锁表或锁行)-乐观锁 – 基于版本号version实现, 在更新数据那一刻校验

2021-10-11 09:50:46 162

转载 SpringBoot项目优化和Jvm调优

一、设置Tomcat端口号和连接数等关于修改配置文件application.propertiesSpringBoot项目详细的配置文件修改文档其中比较重要的有:server.tomcat.max-connections=0 # Maximum number of connections that the server accepts and processes at any given time.server.tomcat.max-http-header-size=0 # Maximum size

2021-09-24 10:57:45 118

转载 SpringBoot打造优雅接口

前言一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。如何构建这几个部分每个公司要求都不同,没有什么“一定是最好的”标准,但一个优秀的后端接口和一个糟糕的后端接口对比起来差异还是蛮大的,其中最重要的关键点就是看是否规范!本文就一步一步演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松。所需依赖包这里用的是SpringBoot配置项目,本文讲解的重点是后端

2021-09-09 16:20:02 381

原创 java、js对小数的运算(防止精度丢失)

JAVA /** * double 相加 * @param d1 * @param d2 * @return */ public static double sum(double d1,double d2){ BigDecimal bd1 = new BigDecimal(Double.toString(d1)); BigDecimal bd2 = new BigDecimal(Double.toSt

2021-09-01 10:54:01 640

原创 input文本限制

//限制输入数字和小数点 function clearNoNum(obj) { obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字而不是. obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的. obj

2021-08-31 18:59:24 88

转载 ElasticSearch索引对比MySQL索引

前言这段时间在维护产品的搜索功能,每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的。这甚至比在我本地使用 MySQL 通过主键的查询速度还快。为此我搜索了相关资料:这类问题网上很多答案,大概意思呢如下:ES 是基于 Lucene 的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的索引数据,相对于 MySQL 来说不擅长经常更新数据及关联查询。说的不是很透彻,没有解析相关的原理;不过既然反复提到了索引,那我们就从索引的角度来对比下两者的差异。

2021-08-20 17:23:14 647

转载 SQL语句-行行比较

一、需求背景业务机构下销售商品,同个业务机构可以销售不同的商品,同个商品可以在不同的业务机构销售,也就说:业务机构与商品是多对多的关系假设现在有 n 个机构,每个机构下有几个商品,如何查询出这几个门店下各自商品的销售情况?具体点,类似如下  如何查出 100001 下商品 1000、1001、1003 、 100002 下商品 1003、1004 、 100003 下商品 1006、1008、1009 的销售情况相当于是双层列表(业务机构列表中套商品列表)的查询;业务机构列表和商品列表都不是固定

2021-08-16 09:13:41 2364

转载 Java 代码规范

一、MyBatis 不要为了多个查询条件而写 1 = 1当遇到多个查询条件,使用where 1=1 可以很方便的解决我们的问题,但是这样很可能会造成非常大的性能损失,因为添加了 “where 1=1 ”的过滤条件之后,数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(即全表扫描) 以比较此行是否满足过滤条件,当表中的数据量较大时查询速度会非常慢;此外,还会存在SQL 注入的风险。反例:<select id="queryBookInfo" parameterType="

2021-08-05 10:36:44 98

转载 javascript对URL中的参数进行简单加密处理

javascript的api本来就支持Base64,因此我们可以很方便的来进行编码和解码。var encodeData = window.btoa(“name=xiaoming&age=10”)//编码var decodeData = window.atob(encodeData)//解码。下面来个具体的例子来说明如何对url中参数进行转码,并取得解码后的参数假如要跳转的url = “stu_info.html?name=xiaoming&age=10”转码:url = “stu

2021-08-02 17:36:01 2674

转载 去掉input标签type=number时出现的箭头

1,去掉箭头/*添加css样式*/input::-webkit-outer-spin-button,input::-webkit-inner-spin-button { -webkit-appearance: none;} input[type="number"] { -moz-appearance: textfield;}2,及禁止输入e和…(只能输入纯数字)<input type="number" autocomplete="off" onkeypress="

2021-07-01 10:15:57 760

原创 oracle重启、监听重启

#su到oracle用户下[root@localhost ~]# su - oracle#重启数据库:[oracle@localhost ~]$ sqlplus /nologSQL> conn /as sysdbaSQL> shutdown immediate       关闭数据库SQL> startup             数据库启动SQL> exit[oracle@localhost ~]$ lsnrctl stop 停掉

2021-06-28 11:48:05 965

原创 centOS7使用rc.local设置开机自启动某些软件

第一种方法:1、编写redis.conf配置文件配置文件路径:/etc/redis.confdaemonize是守护进程的意思把daemonize no改成daemonize yes2、找到./install_server.sh脚本make install安装命令是不带自启动脚本的。而redis官方提供了一个手动编译时的自启动脚本,但是需要通过另外一个工具来安装。我们切换到目录中的utils目录下具体路径:/usr/local/redis/utils脚本文件会依次提示我们选择redi

2021-05-24 17:59:13 4687 2

转载 centOS在离线环境下安装rpm方案

安装Nginx时,发现系统没有装各种依赖库,基本上是gcc、pre-devel、openssl-devel、zlib-devel,Linux又是内网环境,并不能用yum install来进行安装,这里就提供一种离线安装方式。1、首先查看Linux 的系统版本号cat /etc/redhat-release2、下载相应版本的镜像文件下载地址:http://vault.centos.org/7.2.1511/isos/x86_64/把7.2.1511改成你的相对版本号,我这里选择种子文件下载,速度还

2021-05-21 13:52:09 871

原创 windows MongoDB4.0以上版本配置

配置文件修改:# mongod.conf # for documentation of all options, see:# http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data.storage: dbPath: D:\MongoDB\data journal: enabled: true# engine:# mmapv1:# w

2021-05-17 17:38:52 222 1

转载 SQL语句性能优化

1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE。4,应尽量避免在

2021-05-12 16:01:48 42

转载 23 种设计模式的通俗解释

01 工厂方法追 MM 少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是 MM 爱吃的东西,虽然口味有所不同,但不管你带 MM 去麦当劳或肯德基,只管向服务员说「来四个鸡翅」就行了。麦当劳和肯德基就是生产鸡翅的 Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。02 建造者模式MM 最爱听的就是「我爱你」这句话了,见到不同地方的 MM,要能够用她们的方

2021-05-10 14:39:30 52

转载 常用正则表达式

一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

2021-05-10 10:26:40 66

转载 Cookie、Session、Token、JWT解析

什么是认证(Authentication)通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功)互联网中的认证:·用户名密码登录·邮箱发送登录链接·手机号接收验证码·只要你能收到邮箱/验证码,就默认你是账号的主人什么是授权(Authorization)用户授予第三方应用访问该用户某些资源的权限·你在安装手机应用的时候,APP 会询问是否允许授予权限(访问相册、地理位置等权限)·你在访问微信小程序时

2021-05-08 17:23:09 105

转载 深入分析线程池的实现原理

一、概述线程池,顾名思义就是存放线程的池子,池子里存放了很多可以复用的线程。如果不用类似线程池的容器,每当我们需要执行用户任务的时候都去创建新的线程,任务执行完之后线程就被回收了,这样频繁地创建和销毁线程会浪费大量的系统资源。因此,线程池通过线程复用机制,并对线程进行统一管理,具有以下优点:降低系统资源消耗。通过复用已存在的线程,降低线程创建和销毁造成的消耗;提高响应速度。当有任务到达时,无需等待新线程的创建便能立即执行;提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗大量系统资

2021-05-07 13:41:40 112

转载 异常处理包装

软件开发springboot项目过程中,不可避免的需要处理各种异常,spring mvc 架构中各层会出现大量的try {…} catch {…} finally {…}代码块,不仅有大量的冗余代码,而且还影响代码的可读性。这样就需要定义个全局统一异常处理器,以便业务层再也不必处理异常。1 封装统一返回结果类public class AjaxResult { //是否成功 private Boolean success; //状态码 private Integer code;

2021-05-07 10:31:56 160

转载 springboot项目实例

SmartAdmin:https://gitee.com/lab1024/smart-adminLitemall:https://gitee.com/linlinjava/litemall一个小商场系统,Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端。Timo:https://gitee.com/aun/TimoTIMO后台管理系统,基于SpringBoot2.0 + Spring Data Jpa + Thymeleaf + Shiro 开发的后

2021-05-07 10:27:09 1255

转载 Vue.nextTick()解析

什么是Vue.nextTick()??定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。所以就衍生出了这个获取更新后的DOM的Vue方法。所以放在Vue.nextTick()回调函数中的执行的应该是会对DOM进行操作的 js代码;理解:nextTick(),是将回调函数延迟在下一次dom更新数据后调用,简单的理解是:当数据更新了,在dom中渲染后,自动执行该函数,Ex:<template> <div class="hel

2021-05-07 10:20:52 65

转载 oracle阴历解决方案

1、新建年份编码表/将日期转换成农历的表/CREATE TABLE SolarData(YearID INTEGER NOT NULL, -- 农历表DATA CHAR(7) NOT NULL, -- 农历年对应的16进制数DataInt INTEGER NOT NULL -- 农历年对应的10进制数);2、为年份编码表插入数据INSERT INTO SolarData VALUES(1900, '0x04bd8', 19416);INSERT INTO SolarData VALUE

2021-05-07 10:15:42 473

原创 oracle字符串转数组

select regexp_substr(b.REMARKS,’[^,]+’, 1, level, ‘i’) as id_arr from dual connect by level <= length(b.REMARKS)-length(regexp_replace(b.REMARKS, ‘,’, ‘’))+1

2021-05-07 10:06:34 1991

转载 linux tomcat上部署finereport可能会出现的配置问题

2021-05-07 10:04:25 218

转载 vue之父子组件间通信实例讲解(props、$ref、$emit)

组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。那么组件间如何通信,也就成为了vue中重点知识了。这篇文章将会通过props、$ref和 $emit 这几个知识点,来讲解如何实现父子组件间通信。在说如何实现通信之前,我们先来建两个组件father.vue和child.vue作为示例的基础。1.通过prop实现通信子组件的props选项能够接收来自父组件数据。没错,仅仅只能接收,props是单向绑定的,即只能父组件向子组件传递,不能反向。

2021-04-30 10:04:01 245

空空如也

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

TA关注的人

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