自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(883)
  • 资源 (1)
  • 收藏
  • 关注

原创 echarts:一个复杂的瀑布图制作

分析一下这个需求,主要有几个难点:答:echarts 官方 把这种柱子叫瀑布图,实现的原理就是使用一个透明的柱子给他顶起来。我直接搬过来原文。我本来想到的是 y 轴的 type 设置为 time但是做着做着,发现不行,我们做瀑布图要用到 stack,而 stack 不支持 type = time那就只能用 type = value 了,也就是要把时间转化为一个数值,比如在上面的图中,最底部是 13:00,我们先以 13:00 为 0,那么 12:00 就是 1,11:00 就是 2,以此类推。那么

2024-02-06 11:51:44 2432

原创 spring:微服务springcloud入门以及eureka、ribbon、hystrix、feign、gateway的使用

微服务的简单入门

2023-12-18 09:00:00 1167

原创 设计模式:DDD领域驱动设计

面对复杂系统,怎能不知道DDD

2023-05-08 18:42:37 1499 7

原创 抽象语法树AST以及babel原理

什么是AST?借用一下百度百科的解释:在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。其实意思就是将代码以树的格式展现出来,举个例子你就明白了:大家可以在这个网站 https://astexplorer.net/ 上输入代码,会被解析为 AST,如图:可以看到,代码的每一个字符都以树的形式展示了出来。AST的应用

2022-04-10 23:47:29 1487

原创 RN:React Native原理以及新架构JSI、Fabric等概念

说明RN需要一个JS的运行环境, 在IOS上直接使用内置的javascriptcore, 在Android 则使用webkit.org官方开源的jsc.so。 此外还集成了其他开源组件,如fresco图片组件,okhttp网络组件等。RN 会把应用的JS代码(包括依赖的framework)编译成一个js文件(一般命名为index.android.bundle), , RN的整体框架目标就是为了解释运行这个js 脚本文件,如果是js 扩展的API, 则直接通过bridge调用native方法; 如果是UI

2022-02-12 21:56:59 17681

原创 webview原理和JSBridge

webview是一个嵌入式的浏览器,我们平常使用频率最高的就是客户端内嵌的webview特点:运行在webview中的JS代码有能力调用原生的系统API,没有传统浏览器沙箱的限制。目前javascript和客户端(后面统称native)交互的常见方式有两种JSBridgeschemaJSBridge当我们在native内打开m页,native会在全局的window下,为我们注入一个Bridge。这个Bridge里面,会包含我们与native交互的各种方法、比如判断第三方App是否安装、获取网

2022-02-09 18:39:10 7931

原创 小程序底层原理

小程序的 Http Rquest 请求是不是用的浏览器 Fetch API?不是, http request是由逻辑层发起,通过native去触发的,且不支持promise。小程序渲染再同一个线程么?小程序是双线程设计,即视图渲染与业务逻辑分别在运行在不同的线程中。这个设计主要是解决web技术中的一个痛点:web页面开发渲染线程和脚本线程是互斥的,长时间的脚本运行可能会导致页面失去响应或者白屏,体验糟糕。小程序为了更好体验,将页面的渲染线程和脚本线程分开设计在不同线程中执行,具体实现:● 视图v

2022-02-07 19:39:14 2049 1

原创 一文搞清楚软链接和硬链接

前言我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data)元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inod

2022-01-06 16:38:53 3948 6

原创 可能是最全的h5唤起App方案

背景调研 h5 唤起 App 方案目的:引导已下载用户打开APP,引导未下载用户下载APP。先说结论ios9 及以上用 Universal Link(uc/qq浏览器不支持,不过safari占比最大)android6及以上用applink(chrome和小众浏览器支持,市场占比还是比想像中大的)其它情况scheme(各种限制及弹窗确认)微信ios7月的版本已经支持ulink了,android还是乖乖走应用宝吧(引导出微信也行,效果不好)ok,接下来我们一个一个聊URL Scheme有

2021-11-08 18:28:49 26108 25

原创 px、pt、dpi、dip、分辨率、屏幕尺寸等等概念

文章目录基本概念屏幕尺寸屏幕比例像素pxpt/point分辨率DPI(点每英寸)PPI(像素每英寸)DIP/DPdensityandroid最后参考资料基本概念屏幕尺寸屏幕的对角线长度,一般讲的大小单位都是英寸。比如我们说 iphone6 是6.7英寸,就是屏幕对角线为 6.7英寸。屏幕比例只确定了对角线长,2边长度还不一定。所以有了4:3、16:9这种,这样就可以算出屏幕边长了。像素pxpx 不是自然界的长度单位,而是一个抽象的单位,比如:windows桌面属性里的“设置”看到,如果是10

2021-08-15 21:28:37 8389 11

原创 web端自动化部署方案

背景为了提高发布效率,践行DevOps,我们使用 gitlab 的 CI 工具作为我们前端项目的自动化部署方案。集成后的开发&发布模式发布测试环境:代码提交到test分支自动发布。发布正式环境:将test代码合并到master分支自动发布。集成CI/CD思路集成步骤1、集成ci脚本# test、preview和master分支默认支持线上部署# develop分支默认是开发分支,不建议(禁止)触发CI/CD流程,姑不作为默认触发部署分支stages: - instal

2021-01-30 23:52:10 970 3

原创 SEO:基于SPA的搜索引擎优化方案调研

背景由于SPA项目不利于SEO优化,于是有了以下几个方案方案选择方案一:服务端渲染(SSR)直接java或php渲染(那样就又是前后端不分离了,不考虑)服务端起一个node应用优点:SEO 友好首屏渲染快(可在服务端缓存页面,请求到来直接给 html)缺点:代码改动大、需要做特定SSR框架的改动(例如vue的nuxt,react的next)丢失了部分SPA体验node 容易成为性能瓶颈方案二:构建时预渲染方案在项目开发完成之后,将有限的需要SEO的页面挑选出来,借助p

2021-01-14 18:25:19 674

原创 vue:详解vue中的代理proxy

问题我们本地调试一般都是 npm run serve,然后打开 本机ip:8080(localhost:8080)对吧,这时候我们要调接口调试,后端的接口的地址可能在测试环境,也可能是自己电脑的 ip,总之不是你的 lcoalhost:8080,那么你调接口就会产生跨域,那么怎么办呢?就需要proxy出场了复习一下跨域的解决方案jsonpcorsNode中间件代理(两次跨域)nginx反向代理CORS支持所有类型的HTTP请求,是跨域HTTP请求的根本解决方案JSONP只支持GET请求,

2020-07-11 22:58:47 76310 40

原创 js:浅谈函数式编程

背景函数式编程是一种编程思想,其余的还有声明式与命令式函数式举例假设我们要把字符串 functional programming is great 变成每个单词首字母大写var string = 'functional programming is great';var result = string .split(' ') .map(v => v.slice(0, 1).toUpperCase() + v.slice(1)) .join(' ');整个过程就是 join(m

2020-05-09 15:18:02 562

原创 Cursor无限续杯&常用操作

Cursor无限续杯

2025-03-07 11:38:40 296

原创 spring:Spring Security实践过程中的报错总结

要解决这个问题,你可以使用 io.jsonwebtoken.security.Keys 类中的 secretKeyFor 方法来生成一个安全的密钥。真实原因是SecurityContextHolder.getContext().getAuthentication().getPrincipal()结果是anonymousUser,anonymousUser 是 Spring Security 默认使用的一个特殊标识,表示未认证的用户。我在客户端调用自定义的路由 /login,提示302,服务端报错。

2024-11-11 11:11:25 1137 2

原创 后端:唯一ID有哪些生成方式

有时系统需要自定义格式的ID,可能包含日期、业务相关的信息等。这类ID通常通过字符串拼接生成。

2024-10-22 15:03:38 1471

原创 echarts:使用图表标域和标线组成一个区间

echarts

2024-10-22 15:03:21 1120

原创 spring:Springboot3使用模版引擎thymeleaf

Thymeleaf 是一个现代的服务器端 Java 模板引擎,用于在服务器端生成 HTML、XML、JavaScript、CSS 等文件。它常用于构建动态网页应用,尤其是与 Spring Boot 集成时,Thymeleaf 提供了一种简洁且易于使用的模板渲染方式。它可以帮助开发者将数据与视图相结合,并生成动态内容。

2024-10-12 16:47:22 953

原创 spring:springboot3使用Spring Security,以及和springboot2的区别

Spring Security 是一个强大且高度可定制的安全框架,专为保护基于 Java 的应用程序而设计,尤其是 Spring 应用。它提供了一系列功能,帮助开发者实现身份验证(Authentication)、授权(Authorization)、防止常见安全漏洞(如 CSRF 攻击、Session Fixation 等)以及加密等安全措施。

2024-10-12 16:29:51 640

原创 java:详解java编译命令和启动命令

在 Java 开发过程中,编译 Java 源文件(通常以 .java 为扩展名)是不可或缺的一步。这一步骤是通过 javac 命令完成的,该命令是 Java 编译器(Java Compiler)的命令行工具。编译后的代码会生成字节码文件,这些文件以 .class 为扩展名,并可在 Java 虚拟机(JVM)上运行。

2024-09-30 11:59:12 1237

原创 linux:详解nohup命令

在 UNIX 和类 UNIX 操作系统(如 Linux 和 macOS)中,nohup 意图为后台运行且免疫挂断信号的命令,用于在用户注销(logout)或终端关闭后继续运行相应的进程。

2024-09-30 11:32:39 1520

原创 java:brew安装rabbitmq以及简单示例

可以看我之前写的这篇消息队列MQRabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

2024-09-26 14:55:11 1252

原创 java:邮件服务

开启了 IMAP 后,在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。它的一个重要特点是它能够在传送中接力传送邮件,即邮件可以通过不同网络上的主机接力式传送。后来 Spring 推出了 JavaMailSender 简化了邮件发送过程,JavaMailSender 提供了强大的邮件发送功能,可支持各种类型的邮件发送。发送邮件的本质是将一个人的信息传输给另外一个人,那么如何传输就需要商量好标准,这些标准就是协议。

2024-09-24 17:51:35 830

原创 java:异常处理

开发者可以通过继承Exception类或其子类来创建自定义异常,以表示程序中特有的错误情况自定义类继承于现有的异常类结构:RuntimeException、Exception提供全局常量:serialVersionUID 序列版本号,用于标识类提供重载的构造器//自定义异常类super(msg);//学生类}else {throw new MyException("不能输入负数");//测试类try {

2024-09-24 11:48:30 535

原创 es:下载elasticsearch以及基本介绍

Elasticsearch 是一个基于 Lucene 的开源、分布式、RESTful 搜索引擎。使用场景:海量数据的搜索和 Lucene 的关系Lucene:最先进,功能最强大的搜索库。如果直接基于Lucene开发,非常复杂,api复杂。

2024-08-30 17:59:11 546

原创 spring:环境变量

在Spring Boot中,你可以通过配置文件来适应不同的运行环境(如开发环境、测试环境和生产环境)。Spring Boot支持多种方式来管理这些不同环境的配置。

2024-08-23 17:59:00 647

原创 spring:Springboot设置跨域访问 & Spring Security设置跨域访问

通过实现 WebMvcConfigurer 接口并重写 addCorsMappings 方法来全局配置 CORS。这种方法会应用于所有的控制器。如果你只想对特定的控制器或方法启用 CORS,你可以在该控制器或方法上使用 @CrossOrigin 注解。在 configure(HttpSecurity http) 方法中进行这个配置。1、添加SpringSecurity的依赖配置。2、配置 Spring Security。

2024-08-16 17:03:57 636

原创 java:实现简单的验证码功能

验证码图片的url由后端的一个Controller生成,前端请求这个Controller接口的时候根据当前时间生成一个uuid,并把这个uuid在前端使用localStorage缓存起来,下一次还是从缓存中获取。这样,当点击登录按钮将数据提交到后台登录接口时,会从redis中获取uuid,然后通过这个uuid去获取验证码,和前端用户输入的验证码进行比较。Controller生成验证码之后,把前端传过来的uuid通过redis缓存起来,这里分两次缓存。

2024-08-16 11:10:42 851

原创 spring:Springboot升级到最新的3.0或者java8升级到java17所需要的改动(持续更新)

Spring Boot 3.0将所有底层依赖项从Java EE迁移到了Jakarta EE,会对一些使用了Java EE的方法造成影响,需要进行相应的修改和调整。但是有些原生方法是不需要去进行修改的,例如项目中的这几个方法,包不需要替换成jakarta.xxxx。修改application.yml的spring.redis配置为spring.data.redis。修改pom.xml文件,version版本根据实际情况配置最新。将javax.xxxx替换成jakarta.xxxx,例如。

2024-08-16 11:00:31 1093

原创 java:IDEA修改java版本的几个不同的地方

在IntelliJ IDEA项目中,.idea文件夹是一个非常重要的组成部分,它包含了项目的配置信息。这个文件夹下的各个文件扮演着不同的角色,共同确保项目在不同开发环境中的一致性和可移植性。可以看到 Platform Settings,也就是平台设置,区别于项目设置 Project Settings。

2024-08-15 15:15:01 3989 1

原创 java:IDEA装机必备的一些习惯配置、快捷键等等

如果你想选择一个文件就定位到左侧的位置,那么可以进行设置,选择 Always Select Opened File,而且你会发现那个定位的按钮消失了。那么如果想要直接找到这个接口函数的实现函数怎么办呢,则点击 option + CMD + 鼠标左键,则直接跳转到了对应的位置。一般接口和实现类的文件接口是这样的,接口是 interface 定义的所以是 I,实现类是 class 所以是 C。当你打开一个文件的时候,没有定位到左侧的文件列表,可以点击这个定位按钮。

2024-08-08 16:31:01 241

原创 入门ARP协议

ARP协议竟然可以检测酒店摄像头

2024-07-10 15:34:30 674

原创 js:简单入门rxjs

rxjs

2024-06-20 16:52:52 920

原创 RN:Error: /xxx/android/gradlew exited with non-zero code: 1

就好了,但是我同事说她删了 node_modules 然后重新 install 才好的,反正不知道哪里的缓存。2、根据黄色字体提示,说我包版本不对(但是这个是警告应该没事,但是我还是装了)我感觉和1、2点没关系,你可以直接执行3、4点试试。这个大概率是缓存问题,我说一下我的解决思路。

2024-06-05 18:45:02 605

原创 js:关于颜色处理的一些常用函数

js:关于颜色处理的一些常用函数。

2024-06-05 14:27:11 367

原创 RN:‘yoga/style/Style.h‘ file not found

【代码】RN:'yoga/style/Style.h' file not found。

2024-05-31 11:14:41 289

原创 ios:文本框默认的copy、past改成中文复制粘贴

ios 开发,对于输入框的一些默认文案展示,如复制粘贴是英文的,那么如何改为中文的呢。按照路径找到这个文件。

2024-05-30 15:48:10 708

原创 ios:Command PhaseScriptExecution failed with a nonzero exit code

ios:Command PhaseScriptExecution failed with a nonzero exit code

2024-05-27 15:30:26 703

原创 react:memo、useMemo、useCallback的区别

当我们谈论React性能优化时,有三个关键函数不容忽视:React.memo、useMemo和useCallback。今天,我们就来深入解析一下这些函数的使用场景,帮助大家更好地理解它们的用途和效果。此外,关于技术选择和个人偏好,我想分享一下我的观点。我个人偏爱Vue的简洁与直观,能够让我们更专注于业务开发而无需过度关注性能优化。而 React 的性能优化技术我并不喜欢。就像手动挡和自动挡汽车的选择,两者确实都有其独特之处。手动挡汽车提供了更多的操作自由度,但对于很多驾驶者来说,汽车就是要易用。

2024-05-15 16:10:38 858

nginx判读user_agent并转发请求配置文件

nginx判读user_agent并转发请求配置文件

2022-03-17

空空如也

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

TA关注的人

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