Java
Java中实现图片和Base64的互相转化
前言公司项目中用到了实名认证此,采用的第三方平台。后端中用到的单项功能为身份证信息人像对比功能,在写demo的过程中发现,它们所要求的图片信息为base64编码格式。 一、代码package com.bajiao.wyq.tools.chuanglan; import java.awt.image.BufferedImage;import java.io.ByteArrayInputStream;
通过网关实现登录验证以及微服务获取服务和OpenFeign传递用户
网关登录校验 单体架构时我们只需要完成一次用户登录、身份校验,就可以在所有业务中获取到用户信息。而微服务拆分后,每个微服务都独立部署,不再共享数据。也就意味着每个微服务都需要做登录校验,这显然不可取。 鉴权思路分析 我们的登录是基于JWT来实现的,校验JWT的算法复杂,而且需要用到秘钥。如果每个微服务都去做登录校验,这就存在着两大问题: 每个微服务都需要知道JWT的秘钥,不安全
通过配置中心实现热更新
配置热更新 有很多的业务相关参数,将来可能会根据实际情况临时调整。例如购物车业务,购物车数量有一个上限,默认是10,对应代码如下: 现在这里购物车是写死的固定值,我们应该将其配置在配置文件中,方便后期修改。 但现在的问题是,即便写在配置文件中,修改了配置还是需要重新打包、重启服务才能生效。能不能不用重启,直接生效呢? 这就要用到Nacos的配置热更新能力了,分为两步: 在Nacos中添加配置
限流器设计思路(浅入门)
目录令牌桶算法(Token Bucket)漏桶算法(Leaky Bucket)滑动窗口(Sliding Window)总结 限流器(Rate Limiter)是一种用于控制系统资源利用率和质量的重要机制。它通过限制单位时间内可以执行的操作数量,从而防止系统过载和保护服务的可靠性。在程序设计中,可以使用多种方式来实现限流器,下面是几个常见方案的介绍: 令牌桶算法 漏桶算法 划窗算法 固定窗口算法
vue 连接mqtt
下载mqtt服务:npm install mqtt const mqttConfig = { // 你的 MQTT 服务器配置 protocolId: 'MQTT', protocolVersion: 4, clean: true, clientId: 'xxxx', reconnectPeriod: 1000, connectTimeout: 60 *
Android设置app开机自启
Android7.1.1开机自动启动配置 在AndroidManifest.xml文件中添加权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 在AndroidManifest.xml文件中注册接收广播配置, 添加到manifest > application节点下 <
JavaScript中的async/await
async/await是什么? async 是一个修饰符,async 定义的函数会默认的返回一个Promise对象resolve的值,因此对async函数可以直接进行then操作,返回的值即为then方法的传入函数。 await 也是一个修饰符,await 关键字 只能放在 async 函数内部, await关键字的作用 就是获取 Promise中返回的内容, 获取的是Promise函数中re
lodash已死?radash库方法介绍及源码解析 —— 判断方法篇
前言 大家好,我是阿瓜。一个励志分享更多技术的前端瓜 ~ 我们已经分享了 radash 库中数组、对象等相关的方法,大家感兴趣的可以前往主页查看阅读; 或许你最近在某个地方听过或者看过 radash 这个词,它是一个typescript编写的方法库,如果你想试试使用它,我们有简单使用示例,直接套用类似情景使用即可,如果你想深入了解一下这个库,想阅读一下它的源码,我们也会带你逐行解析代码;不管是哪
知乎(1-5期)-AI大模型全栈工程师培养计划,做ChatGPT浪潮中顶尖的超级个体
知乎(1-5期)-AI大模型全栈工程师培养计划,做ChatGPT浪潮中顶尖的超级个体 一.前言: 1.AI形式 目前人工智能和大模型一定是前景非常广阔的赛道,现在陆续出现的模型训练岗,模型技术岗,像有些大厂已经开始不再招聘 JAVA 开发,所以关于大模型的岗位一定是雨后春笋的喷发 2.程序员自身的发展危机 大模型技术导致小红书裁员数据分析师 、阿里裁员测试,且响马要求程序员全部用大模型编程等等,市
构建Arm版jdk1.8 docker基础镜像
前言 jdk1.8的docker镜像默认是cpu架构为x64的,在arm架构或者aarch64 上运行java应用需要自己构建一个对应cpu架构的jdk基础镜像 过程 首先去Oracle官网下载对应的Arm架构的1.8版本jdk 下载好后上传到Arm架构的Linux服务器上,进入该目录下,编写Dockerfile文件,内容如下 编写好后执行编译命令,等待编译完成 编译成功后,使用以下命令验证
2024 Web 新特性 - 使用 Popover API 创建弹窗
Popover API 为开发者提供了一种声明式的方式来创建各种类型的弹窗。目前已在所有三大浏览器引擎中可用,并正式成为 Baseline 2024 的一部分。 一直以来,我们在实现弹出式菜单、提示框或信息卡片时,往往依赖于各种JavaScript库或者自定义CSS样式来完成。虽然这些方法有效,但它们通常伴随着代码冗余、兼容性问题。Popover API正是为了简化这一过程而生,它为Web开发者提
PHP证件识别接口、身份证识别、护照识别、驾驶证识别接口
现在的OCR技术越来越成熟,尤其是翔云平台的OCR API。以证件识别API为例,可识别三十多种证件,能够针对于不同的证件信息进行识别,识别证件信息后返回文字。如此一来,既节省了人力资源的投入,又提高了工作效率。 翔云证件识别API可识别二代身份证、行驶证、临时身份证、驾照、港澳通行证、军官证、护照、签证、台湾通行证、大陆通行证、内地通行证正面、内地通行证背面、户口本、居住证、香港永久性居
random 随机数
import random #输入random并使用自动倒包 (变量接收) = random.randint(1, 100) 注:(1, 100)为取值范围,此处既包含1,也包含100(包左包右),与java不同(java包左不包右,取值范围是1-99)
网关SpringCloudGateway配置
1.网关路由 1.1.认识网关 什么是网关? 顾明思议,网关就是网络的关口。数据在网络间传输,从一个网络传输到另一网络时就需要经过网关来做数据的路由和转发以及数据安全的校验。 更通俗的来讲,网关就像是以前园区传达室的大爷。 外面的人要想进入园区,必须经过大爷的认可,如果你是不怀好意的人,肯定被直接拦截。 外面的人要传话或送信,要找大爷。大爷帮你带给目标人。 现在,微服务网关
java开发环境搭建之java安装
一、下载java版本 现在大多数项目使用的java版本为jdk1.8 双击安装程序 一直下一步,选择好自己的安装路径。 二、环境配置 进入系统高级配置 添加配置JAVA_HOME环境变量 再在PATH变量中将该环境变量的bin目录添加到环境变量,如下图所示: 配置如下图所示
面试必会 --> MyBatis篇
什么是MyBatis Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC
@Builder.Default 及@Builder
lombok 中注解@Builder 修饰类的时候,相关属性字段额外设置的默认值会失效, 如何解决这个问题: 在需要使用builder构造模式生产对象的时候,相关属性上带上@Builder.defalut 注解修饰就可以 范例 原创:做时间的朋友
代码高手的过节秘籍:CodeArt Snap帮写代码,灵感弹指间实现
本文分享自华为云社区《【端午特辑】代码高手的过节秘籍:CodeArt Snap帮写代码,灵感弹指间实现》,作者: 华为云社区精选。 端午将至,粽叶飘香,你却还在为一行行代码头疼?与bug缠斗不休? 现在,基于盘古大模型技术打造的华为云智能开发助手CodeArts Snap, 一键生成高效代码,精准解决技术难题,让你于谈笑间轻松完成应用开发,秒变技术大牛: “30秒写出带有可视化界面的小游
SpringBoot3启动报错 java.lang.ClassNotFoundException: java.text.ListFormat
问题 在使用SpringBoot3创建web项目的时候日志报错java.lang.ClassNotFoundException: java.text.ListFormat. 具体报错如下: 可以看出是找不到java.text.ListFormat类,这就很奇怪,这是jdk中的类为什么会找不到呢? 排查 我的环境: SpringBoot 3.3 OpenJDK 21 发现java.text.L
通义千问整理 | 软件测试工程师要学会的技术 专心致志| 做一件事情就是一件事情| 两耳不闻窗外事,一心只读圣贤书。
通义千问整理 | 软件测试工程师要学会的技术 专心致志| 做一件事情就是一件事情| 两耳不闻窗外事,一心只读圣贤书。 你好,我是软件测试工程师,现在需要我进行兼容性测试,我需要学会哪些工作内容知识?麻烦详细分析并举例说明。你好!作为软件测试工程师在进行兼容性测试时,你需要掌握以下关键知识和技能: 1. 理解兼容性的概念兼容性测试旨在验证软件产品能够在不同的环境、配置和条件
美团面试:说说Netty的零拷贝技术?
零拷贝技术(Zero-Copy)是一个大家耳熟能详的技术名词了,它主要用于提升 IO(Input & Output)的传输性能。 那么问题来了,为什么零拷贝技术能提升 IO 性能? 1.零拷贝技术和性能 在传统的 IO 操作中,当我们需要读取并传输数据时,我们需要在用户态(用户空间)和内核态(内核空间)中进行数据拷贝,它的执行流程如下: 从上述流程我们可以看出,在传统的 IO 操作中,我
HTTP Status 400 – Bad Request
1. 问题 2. 原因 3. 解决方案 排查请求头,看看哪个header值比较大,去掉header就可以请求成功了。 我这个原因是cookie有问题,清理一下浏览器缓存就行了。
为什么现在的网站都在使用HTTPS,区别是什么?
在互联网的世界中,HTTP和HTTPS是两个非常重要的协议,它们在数据传输和安全性方面扮演着关键角色。理解这两个协议的区别和各自的特点,对于网站开发者和普通用户来说都非常重要。本文将详细介绍HTTP和HTTPS的定义、工作原理以及它们之间的主要区别。 HTTP是什么? HTTP(HyperText Transfer Protocol,超文本传输协议)是用于在Web浏览器和Web服务器之间传输超文本
从缺陷到创新:质量保障的新视角
1.背景: 最近一段时间研发大佬们在积极的治理告警,经过一段时间的治理,现在告警情况已经有了很大的改观,但难免还有漏网之鱼;具体我们可以以下边一个例子来看: 这是一个生产的UMP告警,通过这个告警我们发现XXX这个应用的堆内存使用率为90.18%,超过了设置的告警阈值85%,所以产生了这样的一个告警;那什么是堆内存呢? 1.1.Java堆内存 Java堆内存的定义 Java堆内存是JVM内存
Java中可以用的大数据推荐算法
在Java中实现大数据推荐算法时,通常会使用一些开源的机器学习库,如Apache Mahout、Weka、DL4J(DeepLearning4j,用于深度学习)或者Spark MLlib(用于在Spark集群上运行)。由于完整实现一个大数据推荐算法的代码量可能非常大,并且需要配合具体的数据集和环境进行配置,这里我将简要介绍几种常见的推荐算法,并给出每种算法的伪代码或关键代码片段,以及它们的使用场景