• vue3下watch的使用方法示例

    目录 一,监听单个数据ref 二,监听引用类型数据ref:深度监听 1,引用类型ref直接深度监听 2,引用类型ref深拷贝深度监听 三,监听单个数据:reactive 四,监听引用类型数据:reactive 五,immediate: true 六,监听多个数据源 七,flush的配置 1,默认情况下在dom渲染完毕前调用回调函数 2,flush: 'post’在dom渲染完毕后执行回调函数 八,总结 总结 既然是数据监听,监听的是它的变化.那么就需要能够捕获它的变更,于是监听的数据必然要是响应

    2023-03-15
  • Java 根据某个 key 加锁的实现方式

    目录 一.背景 二.参考代码 2.1 同一个 key 只能一个线程执行 2.1.1 代码实现 2.1.2 编写单测 2.2.同一个 key 可以有 n个线程执行 2.2.1 代码实现 2.2.2 测试代码 三.总结 一.背景 日常开发中,有时候需要根据某个 key 加锁,确保多线程情况下,对该 key 的加锁和解锁之间的代码串行执行.大家可以借助每个 key 对应一个 ReentrantLock ,让同一个 key 的线程使用该 lock 加锁:每个 key 对应一个 Semaphore ,让同

    2023-03-15
  • Python一行代码对话ChatGPT实现详解

    目录 一行代码对话ChatGPT 上代码 相关阅读 一行代码对话ChatGPT 最近ChatGPT火爆全球,哪怕你不是程序员,应该也听过他的大名了. 今天我们就来一起体验一下~1行Python代码就够了! 上代码 导入poai这个库后,只需要1行代码poai.chatgpt.chat,就可以和ChatGPT进行对话了.注释和参数说明如下, # pip install poai # 下载教程:https://www.bilibili.com/video/BV1SM411y7vw import po

    2023-03-15
  • C语言利用sprintf固定字符串输出位数

    目录 一.前言 二.案例 [1]多个整数输出补齐 [2]单个整数输出补齐 [3]固定时间长度 [4]浮点数补齐 [5]onenet数据组合 一.前言 sprintf 函数是一个 C 语言中的函数,也被许多其他编程语言所支持.它允许你根据一组变量来格式化和存储一个字符字符串.sprintf 函数可以用于将格式化的数据写入字符数组或字符串中,然后根据需要打印或存储该字符串.sprintf 函数的第一个参数是格式化数据将被写入的字符数组或字符串,随后的参数是用于生成格式化输出的变量.sprintf 函

    2023-03-15
  • Spring Boot security 默认拦截静态资源的解决方法

    Spring Boot security 会默认登陆之前拦截全部css, js,img等动态资源,导致我们的公开主页在登陆之前很丑陋 像这样: 网上很多解决办法都过时了比如还在使用WebSecurityConfigurerAdapte,antMatchers public class SecurityConfigurer extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web)

    2023-03-15
  • Python 使用tf-idf算法计算文档关键字权重并生成词云的方法

    Python 使用tf-idf算法计算文档关键字权重,并生成词云 1. 根据tf-idf计算一个文档的关键词或者短语: 代码如下: 注意需要安装pip install sklean: from re import split from jieba.posseg import dt from sklearn.feature_extraction.text import TfidfVectorizer from collections import Counter from time import

    2023-03-15
  • Go语言实现Sm2加解密的示例代码

    在 Go 语言中,可以使用 github.com/tjfoc/gmsm/sm2 包来实现 SM2 加密和解密. 示例代码如下: package main import (     "fmt"     "crypto/rand"     "encoding/hex"     "github.com/tjfoc/gmsm/sm2" ) func main() {     // 生成密钥对     priKey, err := sm

    2023-03-15
  • Spring Cloud Gateway远程命令执行漏洞分析(CVE-2022-22947)

    目录 漏洞描述 环境搭建 漏洞复现 声明:本文仅供学习参考,其中涉及的一切资源均来源于网络,请勿用于任何非法行为,否则您将自行承担相应后果,本人不承担任何法律及连带责任. 漏洞描述 使用Spring Cloud Gateway的应用程序在Actuator端点启用.公开和不安全的情况下容易受到代码注入的攻击.攻击者可以恶意创建允许在远程主机上执行任意远程执行的请求. 当攻击者可以访问actuator API时,就可以利用该漏洞执行任意命令. 影响范围 Spring Cloud Gateway <

    2023-03-15
  • 前端如何调用后端接口进行数据交互详解(axios和SpringBoot)

    目录 一.介绍 二.项目结构 三.代码编写 四.运用 总结 前端调用后端接口,获得数据并渲染 一.介绍 一个完善的系统,前后端交互是必不可少的,这个过程可以分成下面几步: 前端向后端发起请求后端接口接收前端的参数后,开始层层调用方法处理数据后端将最终数据返回给前端接口前端请求成功后,将数据渲染至界面 对于初学者而言,前后端交互感觉十分困难,其实并不难,现在,我们做一个小例子,在例子中,大家就明白了. 二.项目结构 前端技术:axios 后端技术:SpringBoot(这个也无所谓,但是你一定要有

    2023-03-15
  • 解决AttributeError: ‘NoneType‘ object has no attribute ‘Window‘的问题(亲测有效)

    目录 报错问题 报错翻译 报错原因 已解决VSCode运行强化学习代码抛出异常AttributeError: ‘NoneType’ object has no attribute ‘Window’pyglet.canvas.xlib.NoSuchDisplayException: Cannot connect to “None” 的正确解决方法,亲测有效!! 报错问题 一个小伙伴遇到问题跑来私信我,在VSCode运行强化学习代码,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮

    2023-03-15
  • 手把手教你使用正则表达式验证银行帐号

    目录 前言 例子: 使用正则表达式验证帐号的方法 总结 前言 银行帐号是在任何特定银行开设账户后分配给账户持有人的唯一编号.从技术上讲,我们可以将银行帐号视为主键.银行帐号使我们能够进行借记.贷记和其他交易.根据 RBI 指南,银行帐号具有独特的结构.Account Number的结构如下: 银行帐号仅以数字形式书写.银行帐号长度从 9 位到 18 位不等.不允许有空格.不允许有特殊字符.它包含从 0 到 9 的数字. 例子: 输入:str = ”635802010014976” 输出:True

    2023-03-14
  • Go打包附件内容到执行文件的方法

    目录 前言 打包方法 直接在文件中定义 通过工具转换 go build 总结 前言 如果我们的应用在启动的时候需要对数据库进行初始化(比如建表等), 可以通过读取.sql文件内容直接执行. 但是, 这样会带出一个问题: 在发送可执行文件的时候, 需要连带着附件文件, 并且相对路径还不能出错. 这样太麻烦了 有时我们并不希望附件的内容被使用者看到 处于种种原因, 我们不希望这部分额外的内容以附件的形式出现, 有没有什么办法能够将附件内容直接打包进可执行文件中呢? 打包方法 直接在文件中定义 最容易

    2023-03-14
  • redis中opsForList().range()的使用方法详解

    目录 结论(具体测试数据请往下看) 1.环境 redis 2.测试代码: 3.测试数据(假设List长度为N) 4.测试从索引倒数开始 4.1.stringRedisTemplate.opsForList().range(key, -4, -1) 4.2.stringRedisTemplate.opsForList().range(key, -3, -1) 4.3.stringRedisTemplate.opsForList().range(key, -3, -2) 4.4.stringRedi

    2023-03-14
  • chatGPT之Python API启用上下文管理案例详解

    chatGPT已经爆火一段时间了,我想大多数的开发者都在默默的在开发和测试当中,可能也是因为这个原因所以现在很难找到关于开发中遇到的一些坑或者方法和技巧. 为什么别人的机器人能联想之前的语料,而你的却像个每次都只如初见的高冷机器人? 我也是参考官方文档去阅读和理解的,但是有时候官方文档以为你很懂了,就没有太多说明,废话不多说下面我跟大家讲一下API调用时如何启用上下文管理的. 官方案例: # Note: you need to be using OpenAI Python v0.27.0 for

    2023-03-14
  • ChatGPT对比文心一言优劣分析

    目录 引言 哲学问题 ChatGPT 文心一言 Excel处理 ChatGPT 文心一言 写代码 ChatGPT 文心一言 爱情 ChatGPT 文心一言 程序员35岁危机 ChatGPT 文心一言 不想学习? ChatGPT 文心一言 财务自由 ChatGPT 文心一言 自己说 总结: 引言 看了一点文心一言发布会,太过于无聊,就放弃了没有继续看下去,挺失望的. ChatGPT激起了这么大的浪花,造了这么大的势,不说是颠覆性的技术革新,起码也是划时代的产品吧.文心一言发布就是念ppt,让观看的

    2023-03-14
  • redis反序列化报错原因分析以及解决方案

    目录 redis反序列化报错原因分析 序列化id’不一致 实体类属性不一致 redis序列化转换类型报错 总结 redis反序列化报错原因分析 问题:Cannot deserialize,无法反序列化 分析: 序列化id’不一致 1.实体类实现了序列化接口后,没有指定序列化id. 2.读和写的class版本不一致,srpingboot jar包版本不一致的两个class文件,序列化id不一致.因为我们项目是几个系统对接,共享的一个redis库. 实体类属性不一致 可能存到redis的时候是两个属

    2023-03-14
  • Kubernetes中Nginx服务启动失败排查流程分析(Error: ImagePullBackOff)

    pod节点启动失败,nginx服务无法正常访问,服务状态显示为ImagePullBackOff. [root@m1 ~]# kubectl get pods NAME READY STATUS RESTARTS AGE nginx-f89759699-cgjgp 0/1 ImagePullBackOff 0 103m 查看nginx服务的Pod节点详细信息. [root@m1 ~]# kubectl describe pod nginx-f89759699-cgjgp Name: nginx-f

    2023-03-14
  • Vue3全局组件通信之provide / inject详解

    目录 1.前言 2.provide / inject 3.发起 provide 4.接收 inject 5.响应性数据的传递与接收 6.引用类型的传递与接收 (针对非响应性数据的处理) 7.基本类型的传递与接收 (针对非响应性数据的处理) 1.前言 顾名思义,爷孙组件是比 父子组件通信 要更深层次的引用关系(也有称之为 “隔代组件”): C组件引入到B组件里,B组件引入到A组件里渲染,此时A是C的爷爷级别(可能还有更多层级关系),如果你用 props ,只能一级一级传递下去,那就太繁琐了,因此我

    2023-03-14
  • nginx如何指向本地路径及500错误解决方法

    正文 一个vite+vue3项目,想要部署到服务器上.项目build后的文件都在dist目录下,将这个目录拷贝到服务器上,然后在nginx里进行配置,如下: server { listen 3571; server_name localhost; location / { root /root/xxxx/dist/; try_files $uri $uri/ /index.html; } } 这样就可以通过服务器的公网ip+端口3571来访问这个vue项目了,如果想通过域名访问,则可以这样配置:

    2023-03-14
  • 详解MD5算法的原理以及C#和JS的实现

    目录 一.简介 二.C# 代码实现 三.js 代码实现 一.简介 MD5 是哈希算法(散列算法)的一种应用.Hash 算法虽然被称为算法,但实际上它更像是一种思想.Hash 算法没有一个固定的公式,只要符合散列思想的算法都可以被称为是 Hash 算法. 算法目的就是,把任意长度的输入(又叫做预映射 pre-image),通过散列算法变换成固定长度的输出,该输出就是散列值. 注意,不同的输入可能会散列成相同的输出,所以不能从散列值来确定唯一的输入值. 散列函数简单的说就是:一种将任意长度的消息压缩

    2023-03-14