自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

左直拳的马桶_日用桶

我可以把手按在马桶盖上发誓:所有的文章都是我自己屙的

  • 博客(1411)
  • 资源 (6)
  • 收藏
  • 关注

原创 利用nginx内部访问特性实现静态资源授权访问

在nginx中,将静态资源设为internal;然后将前端的静态资源地址改为指向后端,在后端的响应头部中写上静态资源地址。近期客户对我们项目做安全性测评,暴露出一些安全性问题,其中一个是有些静态页面(*.html)无须授权即可直接访问,里面的信息一览无遗,不安全。这些静态页面都是arcgis地图页面,依赖arcgis for js,没有办法做成一般意义上的动态页面。或者说,该项目是个老项目,目前只处于维护阶段,大规模改头换面不现实。

2024-02-23 19:33:43 697

原创 nacos用作注册中心

但是微服务不是这么玩的,十月革命一声炮响,送来了nacos。所有的微服务都在nacos上注册,由nacos记录微服务的IP信息,当有请求时,nacos将请求分配至对应的微服务。这一切,对上层应用都是透明的,我们无须关心微服务的物理地址和处理烦琐的跳转,只要所有微服务都注册于同一个nacos,且用同一个命名空间,不管微服务安装在哪台服务器,网络相通的情况下,就能访问到想要的微服务。nacos除了用作配置中心,即可以将配置信息由配置文件转移到nacos上,更便于修改和维护外,更重要的,是用作微服务的注册中心。

2024-02-19 16:18:17 370

原创 我的2023

到2023年,五一回来,风云突变,一口气干掉了至少30%,连HR都撵走了。然后一路迁延,淋漓不尽,又断断续续开了一些,再加上看不到希望,自己走的,目前只有一半人了。人走了,原本的工作就分到剩下的人头上,后者原本就忙不过来,现在更加是喘口气都没时间。加上中途接手,半生不熟,硬着头皮赶鸭子上架,其中艰难,可想而知。我今年过了生日,就50岁了。下半年开始频繁出差,6、7、8、9、10、11都在东奔西走,周末加班,996,997,甚至907。这是一个资质平庸,见识短浅,胸无大痣,耽于安乐,蹉跎岁月的程序员的故事。

2024-02-02 17:44:12 364

原创 java程序读取并控制串口设备

监听串口,接收它们发过来的数据,进行处理。

2024-01-31 20:12:53 897

原创 将nacos从1.3升级到2.3

这个非常重要。所谓的备份,首先是指把nacos的配置全部导出来,异机保存,下载到本地。同时不要删除现有的docker容器,可以将其停止,这样不影响新创建的容器使用现有的端口。不过,容器名不能重复。比如现有容器名为nacos,那么新创建的容器可以叫ncos230。

2024-01-26 11:30:45 989

原创 docker-compose初探

我一直直接使用docker命令来创建容器,没有怎么用过docker-compose。也不知道docker-compose和docker有什么区别,docker-compose有什么好处。现在我约略认为,docker-compose是一个简化docker命令的工具,或者说,它是能将docker各种繁琐的命令集成到配置文件的工具,所谓compose也者,就是组合的意思吧。

2024-01-25 18:58:38 400

原创 下载nacos 2.3 for arm64

客户组织安全测试,我们系统测出了好几个高危问题,其中大部分是关于nacos的。原先的nacos版本太低了,是1.3的。现在(2024.01)已经是2.3了,应该装个新的。我们使用docker安装nacos,原本很简单的,只有一个小小的问题,就是服务器的CPU是arm64架构的。现在一般政府项目都是这样,国产化,信创,CPU必定是arm架构。因此,nacos也需要下载支持arm64的镜像。还有一个问题是,服务器不在互联网上,怎么下载?思路:1)在能上网的服务器上下载支持arm64的镜像。

2024-01-25 18:25:55 444

原创 vue3项目中typescript如何export引入(imported)的interface

引入接口后,不能原封不动地直接export出去。typescript支持面向对象语言中常见的接口(interface)、类(class)等。但我近几天发现,一个interface,通过import引入后,如果直接再export出去,是不行的。语法没有错,但运行时似乎出问题。比如,我写一个组件timeline,文件结构如下图所示。为规范其他模块调用,我在_type.ts中定义了一个接口,是关于数据类型的。

2024-01-25 17:06:05 458

原创 信息系统项目管理中的工具与技能

撤退/回避缓和/包容妥协/调解强迫/命令合作/解决。

2024-01-24 10:21:09 949

原创 Intellij idea安装easy code后无法打开问题

我不知道他是怎么删的。我的intellij idea原本有一个EasyCodeMybatisCodeHelperPro插件,用得好地地,结果有天傻傻的安装了另一个插件easy code后,重启idea就打不开了。先把C:\Program Files\JetBrains\IntelliJ IDEA 2021.1.1\plugins\platform-images移除,得以打开idea,然后卸载easy code。你启动的时候,发现重复不加载该插件不就好了吗,现在软件都打不开,那怎么卸载嘛!

2024-01-15 16:59:09 529

原创 vue项目使用typescript创建抽象类及其使用

如题,可以在vue项目使用typescript创建抽象类,然后使用这个抽象类。通过TypeScript,可以在前端应用抽象类了。抽象类的好处,可以同时满足继承和多态,好处多多。

2024-01-11 18:41:15 507

原创 创建EasyCodeMybatisCodeHelperPro模板文件用于将数据库表生成前端json文件

现在的前端,越来越像后端。当我听到我同事说这些名为*.data.ts的json格式文件,是通过工具自动导出来时,我感到震惊,50岁的心灵遭到暴击,内心一阵被时代抛弃的恐慌。前端的话,我复制了其中的实体类模板,改名为:vue.json.vm,然后稍为改改里面的内容,即可得到前端模板。在intellij idea中,通过插件EasyCodeMybatisCodeHelperPro,从现有的模板文件中选择一个复制粘贴,然后稍为修改,即可得到一个合适的模板文件。模板里的普通正文,会输出到导出文件里。

2024-01-09 18:41:19 581

原创 采用intellij idea作为IDE的java项目由于*.iml文件导致无法编译问题

从git上将spring boot项目下载,用intellij idea打开,结果无法编译,提示“程序包com.fasterxml.jackson.core不存在”。查看pom.xml,确实是没有显示依赖,但“External Libraries”里确实是有这个com.fasterxml.jackson.core。而且,同样的代码,其他同事一点问题没有。后来将项目中所有的iml文件删除,然后idea重新打开项目、编译,问题解决。.idea存放项目的配置信息,包括历史记录,版本控制信息等。

2024-01-02 18:18:12 535

原创 java项目应用MQTT传输数据

近期做的一个项目需要传输数据给第三方。根据协定,采用MQTT进行数据的发送和订阅。一般来说,不通系统进行数据对接,一般采用RESTFul接口,走http。mqtt的话,顾名思义,就是一个消息队列。相比RESTFul接口,MQTT方式也许有个好处就是,数据传输给对方后,对方可以收到一个提醒。这个提醒来自于消息队列,不用自己搞。利用这个提醒,也许可以做点啥。除此之外,我不知道还有什么更多的好处。MQTT的要素:1)broker,经纪人,即代理地址,如:tcp://10.0.2.18:1883。

2023-12-28 19:09:25 536

原创 项目应用多级缓存示例

事实证明,这种多级缓存机制下,前端展示数据非常迅速,及时。虽然前端和WEB后端之间没有使用websocket进行数据传输,而是使用了最笨的定期获取,但丝毫没有影响前端的用户体验。2)WEB后端设置一个定时器,每2秒读一次redids的1号库,处理后写入redis的2号库。3)前端虽有多个组件,但不是每一个组件都向后端请求,而是统一请求一次,存入前端缓存,然后全部组件都从前端缓存中读取,对性能是一个保障。2)后端定期处理原始数据,将结果缓存,当前端请求时,返回缓存中的该结果,减少重复劳动,提高了性能。

2023-12-22 18:00:11 588

原创 windows下mysql8修改my.ini设置datadir后无法启动问题

mysql默认数据库文件在安装目录下。创建数据库的时候,并不能指定数据文件存放位置。这就很扯。它只能通过修改mysql.ini来更改数据文件存放目录,而且是一刀切的,没有办法做到数据文件和日志文件分开存放。假如服务器有多个盘,就不能利用磁盘不同IO的优势。但是,既然是服务器,通常会做阵列的吧,做了阵列,就无所谓哪个盘了。我这次要说的,是修改mysql.ini后,mysql无法启动的问题。我遇到的是2个原因:一个是mysql.ini修改后字符编码被改变,导致mysql无法识别;

2023-12-12 09:28:09 432

原创 mysql分别在windows和linux下的备份策略

mysql数据库该怎么备份呢?数据库备份有几个概念:全量备份、增量备份、差异备份。当然啦,数据库备份又有冷备份和热备份,即物理备份和逻辑备份之分。冷备份就是将mysql停了,然后直接拷贝它的数据文件,简单粗暴。问题是,数据库怎可轻易停止或重启?所以我们通常说的备份都是指热备份,即逻辑备份。逻辑备份包括全量备份、增量备份、差异备份。全量备份就是整个库备份。增量备份是将上一次全量备份或增量备份后的变化备份。差异备份是将上次全量备份后的变化备份。所以增量备份和差异备份有重叠。

2023-12-11 10:42:16 302

原创 oracle12c的job没有自动执行,手动运行提示任务1%正在运行问题

有个oracle12c上的job,提交到dbms_job,不知道什么时候开始,停下来了,没有自动运行。手动关闭这个job,重新打开,不行;删除JOB,重新创建,也不行。手动运行,可以,但提示“任务1%正在运行”。该job运行一个存储过程。手动运行该存储过程,也没有问题。反正就是不会自动执行,也不知道这个1%是什么意思,是怎么来的。在网上寻寻觅觅,也没有找到这个“任务1%正在运行”问题的解决办法。有的文章说是重启(不知道是重启数据库还是重启服务器,估计是重启服务器,彻底一些);

2023-12-06 10:11:26 209

原创 vue3使用provider+ inject直接将参数由祖宗传送给孙子

如题。在vue项目中,如果祖宗想将参数传递给孙子甚至更小一辈的组件,是一件麻烦事。可以通过爷爷-儿子-孙子-曾孙这样的链条,一辈辈地传承下去,但未免太繁琐、太蠢了些;也可以通过store间接传送,但如何触发孙子们去获取是个问题。第三种方法是通过provider和inject方式。老祖宗provider,后代inject。在以下示例中,祖宗页面将一个json对象传给孙辈。其中,祖宗provider一个函数,函数返回一个json对象state。

2023-11-23 22:24:04 537

原创 nginx中将指定文件夹设置为虚拟目录

话说,我们系统有照相机和摄像头,可以产生照片和视频。通过nginx将照片和视频所在文件夹映射为虚拟目录,外部即可访问。,如果指定的图片不存在,则以“/photo/nophoto.jpg”代替。是照片和视频所在文件夹,后面一定要带个斜杠。如何映射(或曰,转发)呢?记得目录后面要加个斜杠“/"。

2023-11-21 19:36:31 443

原创 spring boot项目未将resource目录标志为资源目录导致配置文件无效因而运行报错问题

将程序代码发给同事,我自己能跑,他不能跑,提示无法构造redis对象。redis的链接写在配置文件里,其实是可以连接的。同事的操作系统是win11,我是win10,然后大家的idea版本也不一样,他就认为是操作系统或者idea的问题,一顿操作猛如虎。由于我在配置文件还指定了系统端口10080,但系统运行后,我观察到输出信息里,仍然为8080,感觉配置文件根本没有生效。最后发现是因为配置文件所在目录resources没有mark Directory as resources root。能编译,但不能运行。

2023-11-21 19:13:28 772

原创 使用spring boot的程序主线程中异步访问外部接口

主线程中有2个定时器,其中刷新设备数据每2秒1次,检查外部接口每10秒1次。可是由于外部接口访问超时,导致刷新设备数据受到影响,不能按时触发。之所以要在主线程中另开新线程,是因为外部接口不可控,无法预测。如果对方不在线,因而无法访问,只有靠超时抛出异常。如果这部分代码在主线程中运行,则会造成堵塞。

2023-10-25 18:14:06 756

原创 批处理文件中运行指定路径下的exe文件

如图所示,假设有 F:\数据采集和控制模拟程序\2022\SmlData/ChangeValue.exe,现在在上一层目录中设置批处理文件,运行这个exe文件,该如何写呢?其中,cd /d 是改变工作目录,默认是 c:/windows/system32,%~dp0是本批处理文件所在路径。

2023-10-25 13:44:17 983

原创 java中使用redis2个库并支持Redis哈希表

一个redis实例,默认包含16个库,序号从0到15。在redis命令行中,可以用select 序号来切换。我最近在做的一个项目中,需要使用redis的2个库。一个是由其他子系统写入,web后端(java)只读取;数据读出来,处理后,再写入另一个redis库,供WEB前端请求。同时,对Redis的操作支持哈希表。即运行过程中,可以修改哈希类型的键值。比如该值是一个Hash类型,赋值的时候,如果不存在指定元素,则添加;否则更新。这样做的好处是,该键值的元素,可由不同的步骤产生。

2023-09-26 16:50:38 371

原创 vue3项目发布后修改配置文件仍然生效

使用json,并且要用ajax来加载;应用过程中也有一些注意的问题。有关“vue3项目发布后修改配置文件仍然生效”问题,之前做过一篇笔记。但事实上,那篇笔记的步骤,只解决了项目发布后,配置文件没有被压缩,仍然可见可编辑的问题;但配置文件编辑保存后,并没有生效,也就是说,改了也是白改,一点意义都没有。那篇笔记中,配置文件是js文件,使用import的方式。结果项目发布后,估计打包程序做了处理,直接将里面的内容读出来,内联到每个使用它的组件中去了,所以后面再改配置文件不会起作用。

2023-09-23 19:02:48 644

原创 spring boot项目使用mybatis连接失败问题

我在一个Spring Boot项目中,加入数据库访问功能,使用mybatis。结果项目无法启动。以往没有出现过这种问题。不过,以前的项目,都是将现有项目拷贝过来,修修改改,数据库能访问就行,不会太多关注。

2023-09-12 09:14:00 480

原创 vue3 async await

await者,等待异步操作完成也。上面例子中,getStructApi是一个promise,第二个,如果一个方法,包含了await关键词,则该方法在声明时要加上 async 关键词。意思就是死活等它完成,等到一个结果为止。

2023-09-04 20:03:09 558

原创 v-if的外面要罩一个div

【代码】v-if的外面要罩一个div。

2023-09-04 19:45:24 152

原创 mybatis中找不到字段问题org.apache.ibatis.binding.BindingException: Parameter ‘id‘ not found

有两个参数,power和pageable。EasyCodeMybatisCodeHelper生成的代码中,只为分页加了对象p前缀(pageable.),却没有为字段加上对象前缀(power.),令人困惑。使用EasyCodeMybatisCodeHelper生成代码,调用其中的queryAllByLimit时报错了,说找不到参数“id"。如果参数只有一个对象,则无须显式写对象名;不过,如果只有一个参数,就无须加前缀。

2023-09-02 09:24:55 324

原创 程序员能否转型为项目经理

其次是刚参与进来的时候,完全懵逼,人是陌生的,工作内容也是陌生的,面对的都是集团里的人,全都不认识,这总那总的;如果你能够习惯90%的工作内容是与人沟通,在领导、组员和客户各式人等中周旋、协调,忍受各种质询、催促、投诉,接受周末开会,晚上突然来一个电话让你明天坐飞机到外地开会,那你可以考虑做项目经理。6月的时候,负责的一个小项目驻场开发,猛搞2周,终于告一段落,稍为可以喘息一下了,结果又让负责一个新的项目。直至现在,此项目还由于沟通等各种原因,不断出现惊喜,让人一愣一愣的,持续刷新我的底线和认知。

2023-08-31 19:40:11 233

原创 vue中的nextTick的作用

今天我忽然有点明白了。这是一个跟前面语句有关的方法。意思是,等前面的都执行完了,再执行nextTick里面的方法。比如说,页面上有一块内容,正常情况下是隐藏的,满足条件下才显示。这里用了v-if来控制。结果就是new1的方法没有被调用。为啥,因为隐藏内容尚未展示完毕。加上nextTick就可以,意思我想应该是,等待前面的语句执行完,才触发nextTick里面的方法。由以上2段代码可知,某个事件触发下,首先显示隐藏内容,然后调用其中的某个部件的方法。

2023-08-29 20:51:35 720 1

原创 mybatis批量插入报错Parameter ‘id‘ not found. Available parameters are [entities, param1]

看了以下参考文章,修改后问题解决。但作者没有说明是什么原因。mapper文件代码。

2023-08-17 20:21:57 328

原创 项目管理师基础之项目管理计划和项目文件

项目管理过程中,会使用并产生两大类文件:项目管理计划和项目文件。内容一般如下:整个项目生命周期需要收集、分析和转化大量的数据。从各个过程收集项目数据,并在项目团队内共享。在各个过程中所收集的数据经过结合相关背景的分析、汇总,并加工成项目信息。信息通过口头形式进行传达,或以各种格式的报告存储和分发。关于这一主题的更多信息,请参见 4.3 节。

2023-08-12 22:49:29 1343 1

原创 信息系统项目管理的计算机基础知识

软件定义网络(Software Defined Network,SDN)是一种新型网络创新架构,是网络虚拟化的一种实现方式,它可通过软件编程的形式定义和控制网络,将网络设备的控制面与数据面分离,从而实现网络流量的灵活控制,使网络更智能,为核心网络及应用的创新提供了良好的平台。信息安全系统工程就是要建造一个信息安全系统,它是整个信息系统工程的一部分,而且应该与业务应用信息系统工程同步进行,主要围绕“信息安全”内容。而这些内容,恰恰是业务应用信息系统正常运营所不能缺少的。

2023-07-31 21:41:20 858

原创 在写文档的路上

比如需求,有功能性需求,也有各种质量属性,如可靠性、安全性、保密性等要求;详细设计跟踪概要设计,概要设计跟踪需求分析,需求分析跟踪软件研制任务书。最近基本是在写文档。先是有个小项目要验收,我准备了其中绝大部分的文档,设计文档、部署文档、使用手册,还搞了个汇报PPT。然后又是一个充满压力,里面各种大佬,这总那总活蹦乱跳的项目,又是一顿猛写,从天刚蒙蒙亮,东方露出鱼肚白的时候就开始写,一直写到太阳下山,月亮冒头。这次除了要写需求说明书、概要设计、详细设计,还要写研制任务书。需求啦,设计啦,埋头苦干写文档。

2023-07-20 18:26:27 169

原创 使用VS2022编译及运行QT项目

QT是一种版本的C++。我记得以前微软有VC,visual c++,是C++没错,但它又有一些自己的类库,比如可以拖控件,方便开发桌面软件。按我的理解,VC是C++的超集;同样,QT也是C++的超集。为啥要用QT呢?QT方便做界面,尤其是那种电气设备控制软件的界面,比如带仪表盘啥的。VC太out太难用了,就被QT取代了。

2023-07-06 17:39:08 4164

原创 虚拟机上用docker + nginx跑前端并支持https和http

情况是这样,我在虚拟机上,使用docker跑前端,需要这个前端支持https,原http的话自动跳转到https。另外,前端部署使用了负载均衡,即使用了3个docker跑前端:1个入口,另外2个是前端,指向了同一份网站代码。现在https已经是标配了,http除了方便一点,没有什么好留恋的,最好的处理方式,不是同时支持两种协议,而是将http自动跳转到https。前面说到,“$server_name“ 在脚本中被赋值,但是”$host"没看到哪里有赋值,其实就是代表我们所访问的地址,无须赋值。

2023-06-30 10:45:04 1037

原创 nhaibernate对象不宜随意更改值

详细点说,就是从数据库中获得的NHibernate对象,不能当成普通的实体类对象,比如为了方便传参数,将里面的属性赋值。这种对象里面还有许多私有属性,实则与数据库有着千丝万缕的关系。如果此时将会话提交,不管有没有显式提交该对象,数据库都会发生改变。可见,在NHiberNat中,事务提交时,会将同一个session里面的所有改动都持久化到数据库中,不管有没有显式调用。提交之后,发现数据库中张三的类型变成了"牛逼人物",李四变成了"小喽啰"但是,我们并没有提交p1和p2。

2023-06-16 17:32:41 156

原创 NHibernate放在异步函数里报Flush during cascade is dangerous错误问题

如题所示,NHibernate对象不能放在异步函数里,否则可能会报Flush during cascade is dangerous的错误。说可能,是因为不一定每次都报错,可能10次有4、5次报错。(这种错误更令人抓狂)。原因是,NHibernate并非线程安全,如果两个线程同时使用同一个会话(Session),容易出现不可预知的后果。因此要避免将NHibernate对象或操作放在异步函数里。多线程情况下,读取数据库没什么问题,增删改就很可能出现问题。

2023-06-06 16:07:52 234

原创 使用docker部署nginx并支持https

配置nginx支持https,其实也简单,搞个证书,然后修改下配置文件就好了。我以前一篇文章()为例,做个记录。如前所述,我使用docker,部署了3个nginx。一个做负载均衡服务器,另外两个做应用。结构如下:那么,支持https,也是在负载均衡这里进行设置。

2023-06-02 18:58:03 1821

热力图数据

热力图点数据和示例,arcgis for jsapi 4.10。用于展示热力图效果。数据格式为JSON。

2019-02-13

数字证书制作工具itisscg.exe

这是一个用.NET开发的证书生成工具,图形界面。这个工具小巧玲珑,只有200多K,需要.NET4.6的支持。 生成证书含有subject Alternative Name。具体可见文章:https://blog.csdn.net/leftfist/article/details/81433372

2018-12-11

CAS5.1.8自定义验证码源代码

里面是验证码部分,加到CAS项目根目录即可。详见拙作https://blog.csdn.net/leftfist/article/details/84790650

2018-12-05

自动伸缩搜索框2

自动伸缩搜索框ExpandingSearchBar-master 源自https://tympanus.net/codrops/2013/06/26/expanding-search-bar-deconstructed/,洒家稍微修改了一下使用页面和样式,控件本身无修改

2017-04-14

滑动侧边栏

自定义高度,样式,可内嵌iframe;滑动;

2017-04-14

makecert.exe

exe文件,用于证书生成。操作系统有时会自带,但有时又没有,所以上传到此。

2016-11-28

空空如也

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

TA关注的人

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