java、iOS、Vue
华为云云享专家认证|阿里云开发社区博客专家,定期分享Java、iOS资讯(包括基础知识储备)、小程序开发与运营、阅读与写作。只为你呈现有价值的信息,专注于移动端技术研究领域。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Jenkins构建Maven聚合工程,指定构建子模块: -pl api/trace-api -am clean install -Dmaven.test.skip=true
单独构建trace-api 项目以及它所依赖的其它项目。Root POM指向父pom.xml。默认构建所有的子模块。原创 2025-04-29 15:22:08 · 216 阅读 · 0 评论 -
签名计算:对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)【java版本、JS(Vue)、iOS版本的实现】
本文详细介绍了iOS应用中参数签名的安全规范,包括参数按照ASCII码排序、拼接成原始串,使用MD5加密计算签名的过程。同时,讨论了敏感逻辑保护方案和常见问题,如Bool参数处理和微信支付接口的特殊情况。提供相关demo下载和应用案例,以确保请求数据的安全性和完整性。)的格式(即key1=value1&key2=value2…)拼接而成,空值不传递,不参与签名组串。所有参数按照字段名的ascii码从小到大排序后使用QueryString(签名计算规则说明: 数组和对象独立进行签名计算,采用递归实现。原创 2025-03-29 11:32:19 · 339 阅读 · 0 评论 -
安全模块设计:token服务、校验注解(开启token校验、开启签名校验、允许处理API日志)、获取当前用户信息的辅助类
开启token校验、开启签名校验、允许处理API日志。原创 2025-02-28 10:42:08 · 364 阅读 · 0 评论 -
常用架构图:业务架构、产品架构、系统架构、数据架构、技术架构、应用架构、功能架构及信息架构
产品架构:依附于主体业务,由业务决定产品功能与走向。产品架构图是对主体产品的设计与规划,其中可包含已实现和规划中的产品内容。在互联网行业中,产品架构图对后续的开发人员和测试人员尤为重要,可以很直观的帮助工作伙伴了解产品,从而更好的进行技术设计和功能验证。业务架构:一切工作都是以围绕解决业务问题为最终目标,业务架构的展现尤为重要。画业务架构图需要对业务进行收集、拆解、提炼、归纳、分类,从而绘制出业务的上下层级关系和主要结构模块。为后续围绕业务内容展开的工作提供可视化支持。原创 2025-02-13 13:46:56 · 2363 阅读 · 0 评论 -
Java设计规约:设计的本质就是识别和表达系统难点 | 可扩展性的本质是找到系统的变化点,并隔离变化点。
说明:随着代码的重复次数不断增加,维护成本指数级上升。随意复制和粘贴代码,必然会导致代码的重复,在维护代码时,需要修改所有的副本,容易遗漏。说明:代码的深度调用,模块层面上的依赖关系网,业务场景逻辑,非功能性需求等问题要相应的文档来完整地呈现。说明:极端情况下,交付的代码是不可修改的,同一业务域内的需求变化,通过模块或类的扩展来实现。正例:极致扩展性的标志,就是需求的新增,不会在原有代码交付物上进行任何形式的修改。是快速交付迭代可用的系统,省略多余的设计方案,摒弃传统的审批流程,但。次要目的用于指导编码。原创 2025-01-20 15:35:18 · 397 阅读 · 0 评论 -
Java工程结构:二方库依赖规约、依赖范围(provided、compile、runtime、test、import )
基于Sonatype Nexus中发布Maven私有库:【亲测-已解决】The POM for xx:jar:1.1.x is missing, no dependency information。说明:{公司/BU}例如:alibaba / taobao / tmall / kaikeba 等 BU 一级;公司内部发布到中央仓库,可供公司内部其它应用依赖的库(jar 包)。本工程内部子项目模块依赖的库(jar 包)。公司之外的开源库(jar 包)。用来唯一标识 jar 包。原创 2025-01-16 17:13:35 · 239 阅读 · 0 评论 -
Java工程结构:应用分层规约
默认上层依赖于下层,箭头关系表示可直接依赖,如:开放 API 层可以依赖于 Web 层(Controller 层),也可以。包括其它部门 RPC 服务接口,基础平台,其它公司的 HTTP 接口,如淘宝开放平台、支付宝付款服务、高德地图服务等。与底层 MySQL、Oracle、Hbase、OceanBase等进行数据交互。外部(应用)数据存储服务提供的接口,多见于数据迁移场景中。原创 2025-01-16 16:32:55 · 191 阅读 · 0 评论 -
Java多数据源配置模块(SpringBoot多数据源配置):基于注解切面处理多数据源Druid JDBC 连接池参数【基于AOP切面动态切换数据源】modules-multi-datasource
【代码】Java多数据源配置模块:基于注解切面处理多数据源Druid JDBC 连接池参数。原创 2025-01-09 11:19:49 · 238 阅读 · 0 评论 -
YAML文件的键值采用变量引用
操作符被用于合并两个字典,并将右边字典中的所有键值对插入到左边字典中。如果左边字典已有与右边字典中的键相同的项,则这些项将被重写。操作符要求在它的右边有一个键值对,左边是要插入键值对的地方。如果左边的字典中不存在键,则会导致解析错误。在YAML文件中,一个配置量的 值 可以通过引用另一个变量来设置。说明:用&定义锚点时,注意锚点名前后的空格。学会使用YML配置可以减少很多重复配置。要想替换键,则需要用到锚点。2. 仅引入配置的值。原创 2024-05-15 14:14:47 · 1116 阅读 · 0 评论 -
redis分布式锁
添加redis分布式锁。原创 2025-01-07 08:35:57 · 89 阅读 · 0 评论 -
自定义字典转换器用于easyExcel 导入导出
*** 字典解析注解*//*** 字典类型*//*** 字段后缀*//*** 多个字典值分割符号,默认逗号*////*** 是否多个字典值,默认false*//*** 字典转换策略:默认根据根据code和type 输出字典内容name* code,根据code和type 输出字典内容name;应用场景: 响应数据的序列化* name ,根据code和name,输出字典编码 code;应用场景: Excel导入*//**原创 2025-01-06 17:15:03 · 945 阅读 · 0 评论 -
Apache zookeeper集群搭建
Zookeeper集群搭建指的是ZooKeeper分布式模式安装。通常由2n+1台servers组成。这是因为为了保证Leade选举(基于Paxos算法的实现)能过得到多数的支持,所以ZooKeeper集群的数量一般为奇数。springCloud 脚手架项目功能模块:Java分布式锁。原创 2025-01-05 16:46:54 · 521 阅读 · 0 评论 -
springCloud 脚手架项目功能模块:Java分布式锁
在一台服务器上的程序内部,线程可以通过系统进行线程之间的通信,实现加锁等操作。当死锁发生时,系统资源会一直被某一个线程占用,从而导致其他线程无法访问到该资源,最终使整个系统的业务处理或运行性能受到影响,严重的甚至可能导致服务器无法对外提供服务。两个或两个以上的运算单元(进程、线程或协程),互相持有对方所需的资源,导致它们都无法向前推进,从而导致永久阻塞的问题就是死锁。在分布式环境下,执行事务的线程存在于不同的网络服务器中,要想实现在分布式网络下的线程协同操作,就要用到分布式锁。原创 2025-01-04 16:37:06 · 352 阅读 · 0 评论 -
微服务-网关设计
方式2: 将文件放置在域名根目录下,例如https://xx.feieyun.com/xxx.txt;若填写路径,将文件放置在路径目录下,例如https://xx.feieyun.com/xx/xxx.txt),并确保可以访问。服务之间请求传递请求头: 实现RequestInterceptor接口,将请求放入请求头中,往下传递密钥。方式1: 在交易网关的根路径下,写一个对应的接口。服务模块: 实现Filter接口,拦截所有请求,对所有请求的合法性做校验。原创 2023-11-08 11:08:23 · 592 阅读 · 0 评论 -
SpringCloud 脚手架项目:注册中心(nacos)+RPC(feign)
注册中心:nacos网关:gatewayRPC:feign流控熔断降级:sentinel全链路跟踪:sleth+zipkin分布式事务:seata封装功能模块:全局异常处理、日志输出打印持久化、多数据源、鉴权授权模块、zk(分布式锁和订阅者模式)maven:实现多环境打包、直推镜像到docker私服。转载:https://mp.weixin.qq.com/s/fQTkMY2hK2AuOI3gE0TggQ。原创 2022-11-21 16:15:25 · 3627 阅读 · 1 评论 -
开发平台接口规范:北斗终端->北斗三号卫星->指挥机(北斗终端)->北斗短报文融合平台->客户平台(上行)| 时空信息产品
校验对方的出口IP是否在白名单。原创 2024-12-19 14:25:54 · 470 阅读 · 0 评论 -
基于Sonatype Nexus中发布Maven私有库:【亲测-已解决】The POM for xx:jar:1.1.x is missing, no dependency information
使用mvn install:install-file命令将jar包安装到本地仓库,该命令会在本地仓库中生成jar包及pom文件。将生成的jar包和pom文件上传到Sonatype Nexus的私有库中。重新在项目中引用后,问题即可解决。原创 2024-12-20 08:58:34 · 602 阅读 · 0 评论 -
时空信息平台架构搭建:基于netty封装TCP通讯模块(IdleStateHandler网络连接监测,处理假死)【检测 WebSocket 连接的读写空闲状态】
开发者可以通过实现ChannelInboundHandler的channelIdle方法(userEventTriggered)来监听这些事件并执行相应的操作,例如发送心跳或者重连。客户端:writerIdleTime每60秒进行一次读检测,设定时间内write()方法未被调用则触发一次userEventTrigger()方法。心跳组件新增最后一次接收消息时间,每次发送心跳的时候判断,如果 3分钟没有收到任何数据,客户端断开重连;TCP客户端和服务端,都需要定期检查是否有心跳,防止TCP假死。原创 2024-12-20 14:51:20 · 434 阅读 · 0 评论 -
时空信息平台架构搭建:北斗终端->北斗三号卫星->指挥机(北斗终端)/专线->北斗短报文(时空信息)平台 ->客户平台
基于glogcenter+Logback 实现日志中心。平台需要接收上游的回调数据,例如接收北斗终端上行数据。基于elasticsearch存储船舶历史轨迹。基于NGINX配置ssl证书和负载。基于knife4j调试接口和构建文档。基于MinIO实现文件存储管理。基于大华ICC实现历史视频查询。基于xxljob实现任务调度。基于Jenkins部署服务。基于nacos实现网关配置。基于redis实现缓存。原创 2024-12-20 10:45:59 · 355 阅读 · 0 评论 -
时空信息平台:服务划分、日志监控
java.lang.RuntimeException: 解密字符串[82138a6cbbc76bdae9c1d1]时遇到异常。时空信息平台-API安全措施:上篇(通讯协议的安全措施)开放服务和普通服务的NGINX转发做区分配置。浏览器指纹、设备ID作为设备标识。解密异常大概率就是被攻击。新增跟踪码,方便分析日志。原创 2024-12-21 14:11:28 · 181 阅读 · 0 评论 -
时空信息平台-运维篇:线上监控诊断Java服务、服务部署指引
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。发现应用卡住了, 通常是由于某个线程拿住了某个锁, 并且其他线程都在等待这把锁造成的。注意, 目前只支持找出 synchronized 关键字阻塞住的线程, 如果是java.util.concurrent.Lock, 目前还不支持。原创 2024-12-27 15:02:03 · 203 阅读 · 0 评论 -
时空信息平台-API安全措施-下篇:登录鉴权【访问受限】您的请求已被该站点的安全策略拦截。
在没有登录的情况下,直接访问路由到登录之后的路径,前端需要判断是否存在会话,如果会话失效,需要直接返回首页。因为短信验证码有失效和获取频率限制,如果先校验短信验证码,如果密码输入错误,则需要1分钟之后才能获取短信。时空信息平台-API安全措施:上篇(通讯协议的安全措施)校验原则: 高成本的,放到后面验证,例如短信验证码。浏览器指纹、设备ID作为设备标识。原创 2024-12-30 16:43:07 · 1218 阅读 · 0 评论 -
服务端错误的处理和web安全检测
如果你需要更复杂的PHP处理,可能需要考虑更完整的解决方案,如Apache或Nginx。编辑 micro_httpd 的配置文件(通常是 micro_httpd.conf),设置正确的文档根目录(DocumentRoot)到你的PHP文件夹。在没有登录的情况下,直接访问路由到登录之后的路径,前端需要判断是否存在会话,如果会话失效,需要直接返回首页。home /var/www 指定了文档根目录为 /var/www,你需要将它改成你的PHP文件目录的路径。解压并安装到你的Windows系统。原创 2025-01-02 11:05:09 · 647 阅读 · 0 评论 -
web应用安全评估报告:会话Cookie未设置Secure属性(如果网站未部署 HTTPS,则无法使用 Secure 属性。)
HTTP Cookie 用于管理用户会话、存储用户个性化首选项以及跟踪用户行为。使用浏览器的应用程序工具的“Cookie”窗格可以查看、编辑和删除网页的 HTTP Cookie。cookie:服务器端保存在浏览器端的数据片段,以 key/value的形式进行保存。每次请求的时候,请求头会自动包含本网站此目录下的 cookie 数据。网站经常使用这个技术来识别用户是否登陆等功能。建议token机制的升级:基于httpsession进行存储,存在跨域问题,无法适用于小程序。原创 2025-01-02 15:26:30 · 970 阅读 · 0 评论 -
前后端规约
服务端返回的数据,使用 JSON 格式:面向用户的服务,应该选择 JSON 作为通信中使用的标准数据交换格式,包括请求和响应。此外,application/JSON 是一种通用的 MIME 类型,具有。说明:当用户在低版本与高版本之间反复切换工作时,会导致迁移复杂度升高,存在数据错乱风险。在接口路径中不要加入版本号,版本控制在 HTTP 头信息中体现,有利于向前兼容。需要明确协议、域名、路径、请求方法、请求内容、状态码、响应体。说明:缓存有利于减少交互次数,减少交互的平均延迟。前后端的时间格式统一为。原创 2025-01-03 10:35:38 · 319 阅读 · 0 评论 -
错误码的制定原则:快速溯源、沟通标准化。
堆栈(stack_trace)、错误信息(error_message) 、错误码(error_code)、提示信息(user_tip)是一个有效关联并互相转义的和谐整体,但是请勿互相越俎代庖。调用第三方服务出错是一级,中间件错误是二级,消息服务出错是三级。错误码回答的问题是谁的错?C0001(调用第三方服务出错)B0001(系统执行出错)A0001(用户端错误)原创 2025-01-03 13:39:52 · 147 阅读 · 0 评论 -
java 自定义字典序列化器:使用注解自动转换字典信息(自定义注解转换字典)【字典转换策略】
字典项字段基于注解来实现序列化:实现自定义字典序列化注解,在对象进行序列化时,加载指定字典类型,并根据属性值匹配对应的字典项,返回对应字典项信息。序列化时,从注解获取字典类型,再结合字典编码,从redis缓存获取字段内容。需求背景:由于枚举的修改需要更新代码,因此采用字典可以更灵活的维护字典项。因为字典只有两层结构,所以采用主表和明细表结构。降低表结构的复杂性。字典类型、字典编码、字典内容。原创 2025-01-03 17:09:02 · 484 阅读 · 0 评论 -
信息安全:Java自定义Jackson序列化器进行数据脱敏
后台保存的敏感数据不适宜在前端(或传输)直接展示,需要将敏感数据脱敏后返回实现方案:自定义Jackson序列化器进行数据脱敏。/*** * 需要脱密的字段注解。原创 2025-01-04 08:17:03 · 289 阅读 · 0 评论