全部后端前端运维
最新 最热 官方 加精

青苗 | 2天前 | Java

JDK 高版本 @Resource 注解无法使用解决

JDK 高版本 @Resource 注解无法使用解决 原因是高版本 JDK 缺少 javax.annotation 包,我们查看 JDK 1.8 低版本 JDK 发现该包依赖包 javax.annotation-api.jar 解决办法: 官方仓库 https://search.maven.org/artifact/javax.annotation/javax.annotation-api 当前最新版本 1.3.2 ![4ebb5fc635d44f87a4772d5ca359752a.png](//img01.aizuda.com/v1/image/preview/1598986003643633664) 可以直接下载 Jar 导入项目,也可以引入坐标地址

 22 |  0 |  0 Java

青苗 | 2天前 | 后端开发环境

C 盘 太多减肥瘦身法宝命令

C 盘不够用,省着用也不是办法 这里介绍一个瘦身命令,说白了就是乾坤大挪移,做一个文件夹连接,例如 将 jar 仓库的下载包存到 D 盘 执行如下命令,其它占用文件较大的目录文件夹可以仿效如下: cmd mklink /j "C:\Users\电脑名\.m2" "D:\Program Files\.m2"

 19 |  0 |  0 后端开发环境

青苗 | 6天前 | Go

Golang生成exe时如何添加一个图标

Go 打包 exe 如何看起来更正规?那么肯定是要有一个漂亮的图标,本文介绍如何加上这个图标。 制作图标 找到一个漂亮的图标 在线制作 ico 图标 https://www.bitbug.net/ https://cloudconvert.com/png-to-ico 生成 main.syso 文件 上一步的 ico 文件放到项目根目录 新建文件 main.rc 添加如下内容 cmd IDI_ICON1 ICON "logo.ico" 项目根目录 cmd 命令窗口打开,执行以下命令行 cmd windres -o main.syso main.rc 成功 会生成 main.syso 文件 (保留) 文件 ico main.rc 可以删除 打包项目 这里就是正常打包了,不用多说。打包完成会有一个带图标 exe 可执行文件

 27 |  0 |  0 Go

青苗 | 6天前 | CI/CD

Windows Docker 安装 D 盘 方法

Windows Docker 安装 D 盘 方法 先创建 D:\Program Files\Docker 目录 用 管理员身份 打开 cmd 窗口,然后,再运行如下命令: cmd mklink /j "C:\Program Files\Docker" "D:\Program Files\Docker" 安装 [点击下载 Docker](https://www.docker.com/products/docker-desktop) 成功后点击安装即可。 !!特别注意管理员身份执行命令!!

 26 |  0 |  0 CI/CD

猎隼丶止戈 | 1周前 | CI/CD

ntfy 无需注册的通知服务

--- [https://blog.csdn.net/wbsu2004/article/details/125040247](https://blog.csdn.net/wbsu2004/article/details/125040247) ntfy 是一个简单的基于 HTTP 的 pub-sub 通知服务。 2022-11-27 13:01:38 --- ​​什么是 ntfy ? ​ ntfy ​​​(发音: notify ​​​)是一个简单的基于 HTTP ​​​ 的 pub-sub ​​​ 通知服务。它允许您通过任何计算机上的脚本向您的手机或桌面发送通知,完全无需注册或费用。 官方提供了免费的版本:[https://ntfy.sh/app](https://ntfy.sh/app) 安装 群晖(Docker) 下载 在注册表中搜索 ntfy ​ ,选择第一个 binwiederhier/ntfy ​,版本选择 latest ​。 ![308d6e48645b4ff09204b488f12656b1.png]...

 51 |  0 |  0 CI/CD

青苗 | 1周前 | Java

flowable 流程发起人

获取流程发起人 通过当前实例获取 java // 流程发起人 ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() .processInstanceId(execution.getProcessInstanceId()) .singleResult(); String startUserId = processInstance.getStartUserId(); 通过历史任务 java // 获取流程发起人 HistoricProcessInstance hi = historyService.createHistoricProcessInstanceQuery().processInstanceId(execution.getProcessInstanceId()) .singleResult(); String startUserId = hi.getStart

 37 |  0 |  0 Java

马铃薯头 | 2周前 | Java

Java8 函数式编程

1. 函数式编程思想 1.1. 概述 在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿数据做操作” 面对对象思想强调“必须通过对象的形式来做事情” 函数式思想强调则金量忽略面向对象的复杂语句:“强调做什么,而不是以什么形式去做” 1.2. 优点 代码简洁,开发快速 接近自然语言,易于理解 易于“并发编程” --- 2. Lambda表达式 2.1. 概述 Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码 块)。 Lambda 表达式(Lambda expression)可以看作是一个匿名函数,基于数学中的λ演算得名,也可称为闭包(Closure) 2.2. 核心原则 可推导可省略 2.3. 基本格式 (parameters) expression 或 (parameters) { statements; }

 347 |  3 |  0 Java

马铃薯头 | 2周前 | SpringBootJava

SpringBoot项目分离打包

1. 为什么要分离打包 SpringBoot项目每次改动,都需要将整个项目重新打包部署,而且打包后的jar包太大,远程部署时很不方便,尤其是网让吃了的时候,整个人能烦死。 所以把lib里面的jar包从项目分离出来,每次部署只需要发布修改过的jar包就行啦。 2. maven分离打包 2.1. 修改pom.xml配置 创建SpringBoot项目后默认的打包配置: xml <build <plugins <plugin <groupId org.springframework.boot</groupId <artifactId spring-boot-maven-plugin</artifactId </plugin </plugins </build 2.1.1. 在properties标签中定义变量 xml <properties <!--依赖输出目录- <lib-path lib</lib-pat

 138 |  1 |  0 SpringBootJava

青苗 | 2周前 | 分布式缓存

新生代 NOSQL 数据库 dragonfly 25倍 redis 性能

dragonfly 号称比redis快25倍性能 开源地址 https://github.com/dragonflydb/dragonfly 官网 https://dragonflydb.io/ 官方基准测试数据 ![80c996ede0fa4321b424293154e70496.png](//img01.aizuda.com/v1/image/preview/1593887094873264128) dragonfly 高性能的特点总结 多线程   与redis的单线程设计不同,dragonfly使用多线程进行响应服务。多线程的设计更加符合现代计算机的多核设计,能够更大化的利用系统资源。 无共享架构   redis使用单线程结构,不涉及共享。而dragonfly作为多线程,对于多线程的数据传输也没有使用共享架构。对此原因有以下三点:   (1)可以在公有云中可用服务器充分利用CPU,内存和IO资源,允许线程之间对内存存储键空间分区,每个线程管理自己的数据切   (2)共享架构可为所有的操作提供原子性的保证,在非常高的吞吐量上保证低时延   (3)在多CPU的...

 178 |  0 |  0 分布式缓存

青苗 | 2周前 | Go

golang 文件上传,上传下载速度限制

文件上传,大小写获取 go package main import ( "fmt" "io" "log" "net/http" "os" ) // 获取文件大小的接口 type Size interface { Size() int64 } // 获取文件信息的接口 type Stat interface { Stat() (os.FileInfo, error) } // hello world, the web server func HelloServer(w http.ResponseWriter, r http.Request) { if "POST" r.Method { file, _, err := r.FormFile("userfile") if err != nil { http.Error(w, err.Error(), 500) return } if statInterface, ok := file.(Stat); ok { fileInfo, _ := statInterfa

 40 |  0 |  0 Go

vip | 2周前 | TypeScript

ES6常用API详讲

ES6常用API详讲 ECMAScript 6简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 let和const命名 let基本用法-块级作用域 在es6中可以使用let声明变量,用法类似于var ⚠️ let声明的变量,只在 let 命令所在的代码块内有效 ini { let a = 10; var b = 20; } console.log(a); //a is not defined console.log(b); //20 不存在变量提升 var 命令会发生 变量提升 现象,即变量可以在声明之前使用,值为 undefined 。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。 为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定在声明后使用,否则报错 ini //

 31 |  0 |  0 TypeScript

青苗 | 3周前 | JavaScript

yarn 安装 + 缓存位置修改

https://classic.yarnpkg.com/lang/en/ 安装 Yarn js npm install -g yarn 缓存位置修改 js yarn config set global-folder "你的磁盘路径" 检查当前 yarn 的 全局安装位置 yarn global dir

 41 |  1 |  0 JavaScript

vip | 3周前 | Java

【JVM】关于JVM,你需要掌握这些 | 一文彻底吃透JVM系列

【摘要】 最近,一直有小伙伴让我整理下关于JVM的知识,经过十几天的收集与整理,初版算是整理出来了。希望对大家有所帮助。 写在前面 最近,一直有小伙伴让我整理下关于JVM的知识,经过十几天的收集与整理,初版算是整理出来了。希望对大家有所帮助。 JDK 是什么? JDK 是用于支持 Java 程序开发的最小环境。 1. Java 程序设计语言 2. Java 虚拟机 3. Java API类库 JRE 是什么? JRE 是支持 Java 程序运行的标准环境。 1. Java SE API 子集 2. Java 虚拟机 Java历史版本的特性? Java Version SE 5.0 引入泛型; 增强循环,可以使用迭代方式; 自动装箱与自动拆箱; 类型安全的枚举; 可变参数; 静态引入; 元数据(注解); 引入Instrumentation。 Java Version SE 6 支持脚本语言; 引入JDBC 4.0 API; 引入Java Compiler API; 可

 205 |  2 |  0 Java

青苗 | 4周前 | JavaScript

nodejs 国内镜像源

推荐使用阿里的镜像源 通过 config 命令配置 通过全局配置指定镜像源: npm config set registry https://registry.npmmirror.com 在安装模块的时候指定镜像源 使用npmmirror镜像源 安装 loaddash 模块 npm install loaddash --registry https://registry.npmmirror.com 编辑 /.npmrc 加入下面内容 还可以通过配置文件指定全局配置镜像源 registry=https://registry.npmmirror.com 使用 cnpm 如果你不想修改镜像源,每次安装过程时指定镜像源又嫌麻烦的话,可以安装 cnpm 这个模块,这样在之后安装模块的时候使用 cnpm命令代替 npm命令,同样能使用该镜像源。 npm install -g cnpm --registry=https://registry.npmmirror.com 参考资料 https://npmmirror.com/ 淘宝

 57 |  1 |  0 JavaScript

青苗 | 4周前 | JavaScript

nodejs 版本升级

npm 命令升级 js 查看当前node版本 $ node -v 清除npm缓存 $ npm cache clean -f 全局安装n $ npm install -g n 升级到最新稳定版 $ n stable 升级到最新版 $ n latest n 列出已安装的Node.js版本 n latest 安装最新版本(包含最新特性的版本,不推荐用于生产环境) n stable 安装最新稳定版(不推荐用于生产环境) n lts 安装最新长期维护版(生产环境推荐) n <版本号 根据版本号安装对应版本的Node.js 官方下载 [点击下载 Recommended For Most Users 版本](https://nodejs.org/zh-cn/) 下载了 node-v18.12.0-x64.msi 点击安装即可

 39 |  0 |  0 JavaScript

青苗 | 2个月前 | Java

Keytool 工具的介绍与使用

keytool 简介 Keytool 是一个 Java数据证书的管理工具, Keytool将密钥(key)和证书(certificates)存在一个称为 keystore的文件中。 keystore 文件介绍 在 keystore里,包含两种数据: 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密) 可信任的证书实体(trusted certificate entries)——只包含公钥 我们常说的证书就是就是上面的公钥,公钥是公开给其它人使用的。 证书后缀解释 jks 是Java的keytool证书工具支持的证书私钥格式; pfx 是微软支持的私钥格式(p12是pfx的新格式); cer / crt 是证书的公钥格式(cer是crt证书的微软形式) csr 数字证书签名请求文件(Cerificate Signing Request) Tips: .der .cer : 此证书文件是二进制格式,只含有证书信息,不包含私钥。 .crt : 此证书文件是二进制格式或文本格式,一般

 118 |  1 |  3 Java

青苗 | 2个月前 | Go

go swagger :cannot find type definition error

go swagger 文档生成异常 :cannot find type definition https://github.com/go-swagger/go-swagger 原因: 默认不会解析外部引用类型 解决办法: 1,最简单 CV 相应包到本地 2,执行命令行 swag init --parseDependency --parseInternal 缺点影响生成文档速度。 | 参数名 | 含义解释 | | - | - | |parseInternal |解析内部依赖包,默认值: false | |parseDependency |解析外部依赖包,默认值: false | |parseDepth | 解析依赖包深度,默认值:100 |

 63 |  0 |  0 Go

vip | 2个月前 | Java后端开发环境

MyBatis-Plus条件构造器,从此优雅写SQL

前言 本章主要介绍MyBatis-Plus的条件构造器,条件构造器是MyBatis-Plus的核心,可以使用面向对象的方式来实现查询,本文内容涵盖开发的90%以上查询场景,我们慢慢往下看 ------ 一、条件构造器 1.1、官网的弊端 MyBatis-plus官网 一上来对 条件构造器 的介绍比较模糊,看不懂,不信您看一下 ![img](https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/5065ec2166764e8f8c87beb6efcf64ea noop.image?_iz=58558&from=article.pc_detail&x-expires=1667315205&x-signature=IRI4Fk83J8Rmq0rucFKvyFtGl8c%3D) 并且下方的案例中也没有创建Wrapper对象的步骤,初学者在刚接触时比较抽象,看完这篇文章之后再去看官网就会比较清晰了。 ![img](https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49...

 196 |  0 |  0 Java后端开发环境

青苗 | 2个月前 | Go

golang 一键多平台打包 goreleaser

![e493f48770de429ca58e83f723deea2e.png](//img01.aizuda.com/v1/image/preview/1583698047240507392) golang 一键多平台打包 goreleaser goreleaser 是一个自动化打包工具, 自动初始化编译脚本, 支持对接CI/CD 等平台,一行命令轻松实现快速交叉编译跨平台打包。 [goreleaser项目官网](https://goreleaser.com/) [goreleaser源码仓库](https://github.com/goreleaser/goreleaser) 安装使用 https://goreleaser.com/install/ 本文采用命令行 go install github.com/goreleaser/goreleaser@latest 初始化编译脚本 执行命令 goreleaser init 会在项目根目录生成文件 .goreleaser.yaml 原内容做如下调整, 注释不需要的 ...

 97 |  0 |  0 Go

青苗 | 2个月前 | GoJavaJavaScriptTypeScript

Protobuf 生成 Go Java Javascript 等文件

protobuf 简介 [protocol-buffers 官网](https://developers.google.com/protocol-buffers/) protobuf (protocol buffer) 是谷歌内部的混合语言数据标准。通过将结构化的数据进行序列化(串行化),用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。 ![3f3fca408c324376bec46e03d6ecf00b.png](//img01.aizuda.com/v1/image/preview/1583274127333003264) ProtoBuf 中的数据是按顺序进行排列,而整体的结构为若干个 field ,每一个 field 中由 Tag-[Length]-Value 组成。Length是可选的,而是否存在 Length 是通过 Tag 的类型来决定的。也就是说如果是指定的类型,比如 int64 ,那我们就可以知道 Value 的长度,也就不用在依靠 Length 来对其空间进行描述。 对比 JSON 和 XML XML

 218 |  0 |  0 GoJava