自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tobebetter9527的博客

To be a better coder!

  • 博客(313)
  • 收藏
  • 关注

原创 WSL2 + Windows + remote Chrome CDP openclaw 浏览器自动化

本文介绍了在WSL2中通过OpenClaw远程控制Windows端Chrome的完整流程。核心步骤包括:1) Windows端开启Chrome远程调试端口;2) 验证WSL2与Windows的网络连通性;3) 配置OpenClaw连接远程CDP端点;4) 进行端到端功能验证。重点解决了端口占用、防火墙设置、网络转发等常见问题,并提供了详细的错误排查清单。通过该方法可实现跨系统的浏览器自动化控制,适用于开发调试等场景。

2026-03-28 20:49:28 1476 2

原创 Debian / Ubuntu openclaw 浏览器自动化

资料来源:https://my.feishu.cn/wiki/LuRMwMOYviKhVHkaTq7cpdx3nEN。

2026-03-28 20:14:22 74

原创 openclaw browser --browser-profile openclaw start 报错

OpenClaw运行浏览器时报错"gateway closed (1006)",通过升级到3.24版本成功解决问题。错误信息显示网关异常关闭,连接本地回环地址ws://127.0.0.1:13562失败。该问题困扰多时,经多方查找资料和咨询AI后,最终通过版本升级得以解决。

2026-03-28 11:29:56 419

原创 如何在windows系统通过ssh远程连接部署在云服务器的openclaw

本文介绍了通过SSH隧道连接本地访问阿里云服务器上OpenClaw前端页面的方法。首先解释ssh -N -L命令实现端口转发的原理,其中13562为本地端口,18789为远程服务端口。接着提供检查端口占用、修改SSH配置(AllowTcpForwarding和GatewayPorts设为yes)、确认服务运行状态等关键步骤。最后通过验证云服务器端口开放情况,成功建立连接并访问OpenClaw页面。整个过程涵盖了从端口映射配置到服务验证的完整解决方案。

2026-03-27 23:24:57 489

原创 How to fix “Exception has occurred: ModuleNotFoundError No module named ‘_lzma‘“

The module is a built-in C extension in Python’s standard library (available since Python 3.3) that provides LZMA compression support. It’s often required by libraries like (from Hugging Face), pandas, or PyTorch for handling compressed data formats. The

2025-12-06 12:02:33 339

原创 How to use homebrew on mac

【代码】How to use homebrew on mac。

2025-12-06 10:16:27 1060

原创 How to manage python versions on windows

【代码】How to manage python versions on windows。

2025-11-26 21:42:56 439

原创 How to manage python version via pyenv on mac m2 chip

摘要:pyenv是一个强大的Python版本管理工具,支持多版本安装与切换(全局/项目/会话级),适用于macOS和Linux系统。通过shims机制路由命令,版本优先级依次为shell、项目、全局和系统Python。安装后可通过pyenv install、global/local/shell等命令管理版本,支持虚拟环境集成。Mac M2需配置Xcode和OpenSSL解决编译问题。优势包括环境隔离、版本一致性和团队协作,适合需要多版本Python的开发项目。常见问题可通过rehash或检查PATH解决。

2025-11-07 22:25:28 942

原创 How to install JDK on mac

文章目录1. Install JDK on mac2. zshenv, zshrc, zprofile3. 查看java环境变量配置1. Install JDK on macInstallation of the JDK on macOS2. zshenv, zshrc, zprofileHow Do Zsh Configuration Files Work?3. 查看java环境变量配置open Terminal,cd ~ , ls -acat .zshenv

2024-03-31 10:12:49 939

原创 工作流flowable篇

文章目录1. 如何集成flowable框架2. 流程表单2.1 如何实现动态的流程表单2.2 如何实现流程表单的保存2.3 如何实现流程表单的展示?1. 如何集成flowable框架2. 流程表单2.1 如何实现动态的流程表单2.2 如何实现流程表单的保存2.3 如何实现流程表单的展示?

2024-01-21 18:05:23 794

原创 SaaS多租户篇

多租户

2024-01-20 22:25:12 1210

原创 Oauth2.0授权篇

文章目录1. 入门1. 入门

2024-01-14 19:11:26 722

原创 功能权限篇

本质:还说要给前端按钮一个确定的id,然后前端根据查询的权限数据判断是否显示按钮。关键点:前端监听路由切换。

2024-01-14 11:54:29 642

原创 数据权限篇

面对复杂多变的需求,硬编码的可复用性差,需要非常大的开发和维护成本。方案二,本质上也是基于mybatis的插件机制。

2023-12-23 22:03:53 967

原创 用户认证篇

分为访问令牌access_token和刷新令牌refresh_token, 分别保存在system_oauth2_access_token和system_oauth2_refresh_token。访问令牌设置的过期时间一般比较短,通常为30min,刷新令牌可以设置很长时间,比如30天。访问令牌快过期,可以用刷新令牌获得一个新的访问令牌。先生成刷新令牌,再生成访问令牌。在前端yudao-ui-admin-vue3里面,看service.ts,拦截请求,在请求header添加访问token。Security

2023-12-23 13:07:27 717

原创 3.如何实现 API 全局异常处理?-web组件篇

在 Spring MVC 中,通过 @ControllerAdvice + @ExceptionHandler 注解,声明将指定类型的异常,转换成对应的 CommonResult 响应。实现的代码,可见 GlobalExceptionHandler类。

2023-11-12 22:16:52 313

原创 2.如何实现API统一响应-web组件篇

在标准的 RESTful API 的定义,是推荐使用 HTTP 响应状态码 (opens new window)作为状态码。

2023-11-12 22:03:25 491

原创 1.如何实现统一的API前缀-web组件篇

两种场景的前缀不同,分别为/admin-api/和/app-api/,都写在一个controller里面,显然比较混乱。分开写在不同的controller是比较好的方案。实现spring-mvc的接口WebMvcConfigurer,定制请求路径的前缀匹配方式。查看组件yudao-spring-boot-starter-web的类YudaoWebAutoConfiguration。系统提供了 2 种类型的用户,分别满足对应的管理后台、用户 App 场景。再来看WebProperties类。

2023-11-05 11:57:28 577

原创 幂等性(防重复提交)

主要用途:防止用户快速双击某个按钮,而前端没有禁用,导致发送两次重复请求。

2023-11-04 23:38:38 1031

原创 18-spring 事务

文章目录1. xml和注解配置方式的对象2.spring事务传播特性3. 注解事务的初始化流程4. 创建事务信息流程图5. 事务回滚流程图1. xml和注解配置方式的对象2.spring事务传播特性事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。PROPAGATION_

2023-10-20 22:12:52 441

原创 17-spring aop调用过程概述

CGLIB$CALLBACK_0的advised对象的targetSource有一个普通对象MyCalculate.

2023-10-20 22:12:17 510

原创 16-spring AOP核心对象的创建

参考官方解释:https://docs.spring.io/spring-framework/docs/5.2.9.RELEASE/spring-framework-reference/core.html#aop-introduction-defn。

2023-10-20 22:11:07 477

原创 15-bean生命周期,循环依赖

文章目录1. bean生命周期1. bean生命周期

2023-10-20 22:09:02 502

原创 14-bean创建流程5-初始化和循环依赖

Bean是分为实例化和初始化,可以在实例化之后就把半成品的bean实例暴露,让其他bean引用,后续半成品的bean初始化并不影响其内存地址。

2023-10-20 22:08:18 563

原创 13-bean创建流程4-反射创建bean

SmartInstantiationAwareBeanPostProcessor接口定制构造函数/***/@Nullableif (ctors!= null) {MergedBeanDefinitionPostProcessor接口。

2023-10-15 20:53:51 173

原创 12-bean创建流程3

createBean方法里面的resolveBeforeInstantiation方法,InstantiationAwareBeanPostProcessor接口创建一个代理对象返回。spring创建bean的方式有哪几种。

2023-10-15 20:53:13 200

原创 11-bean创建流程2

单例模式的bean只会被创建一次,IoC容器会缓存该bean实例以供下次使用;原型模式的bean每次都会创建一个全新的bean,IoC容器不会缓存该bean的实例。那么如果现在有一个单例模式的bean引用了一个原型模式的bean呢?如果无特殊处理,则被引用的原型模式的bean也会被缓存,这就违背了原型模式的初衷,这时使用lookup-method注入可以解决该问题。原理是:使用cglib生产代理类,复写方法。

2023-10-15 20:52:26 205

原创 10-bean创建流程1一finishBeanFactoryInitialization(ConfigurableListableBeanFactory

从PostProcessorRegistrationDelegate#invokeBeanFactoryPostProcessors()的第一个beanFactory.getBeanNamesForType(BeanDefinitionRegistryPostProcessor.class, true, false)进入。注意这里的递归调用。

2023-10-15 20:51:47 497

原创 09-消息资源和监听器的初始化

是AbstractApplicationEventMulticaster的内部私有的类,持有applicationListeners和applicationListenerBeans。逻辑很简单,如果beanFactory有多播器,仅打印日志,如果没有则创建SimpleApplicationEventMulticaster多播器。监听器运用到观察者模式。具体可以看:https://refactoringguru.cn/design-patterns/observer。

2023-10-15 20:51:11 174

原创 08-注册BeanPostProcesser

这里提到的重点是代理的创建是在 post-processors的postProcessAfterInitialization方法之后,即初始化之后。registerBeanPostProcessors(beanFactory)的方法过程。允许对新建实例的定制修改,比如检查标记接口或用代理包装他们。见名知意,在bean初始化之前处理bean。在bean初始化之后处理bean。

2023-10-15 20:50:36 476

原创 07-ConfigurationClassPostProces的解析

主要是来解析@Configuration注解的类,比其他BeanFactoryPostProcessor优先执行。

2023-10-15 20:49:35 408

原创 06-spring的beanFactoryPostProcessor的执行

在BeanFactoryPostProcessor执行提前执行,主要用于修改注册BeanDefinition。

2023-10-15 20:47:21 171

原创 05-spring的bean工厂准备工作

直接上代码定义基本类....自定义属性编辑器继承PropertyEditorSupport@Override自定义属性登记员@Overridexml信息。

2023-10-15 20:46:39 215

原创 04-spring配置文件加载过程

XmlBeanDefinitionReader继承AbstractBeanDefinitionReader,AbstractBeanDefinitionReader实现BeanDefinitionReader。注意XmlBeanDefinitionReader的构造函数,beanFactory作为参数传入其构造函数,AbstractBeanDefinitionReader有个成员变量registry, 这就是beanFactory的注册中心。beanFactory的bean注册中心。

2023-10-15 20:45:54 156

原创 03-spring启动流程细节

AbstractApplicationContext#initPropertySources()扩展,子类重写方法即可。注意子类调用父类构造器和子类调用子类其他构造器。读取bean配置信息。

2023-10-15 20:45:07 161

原创 02-spring源码概述-debug流程

文章目录1. 两个主要ApplicationContext的类继承结构图1.1 ClassPathXmlApplicationContext1.2 ClassPathXmlApplicationContext2. DefaultListableBeanFactory类继承结构图1. 两个主要ApplicationContext的类继承结构图1.1 ClassPathXmlApplicationContext1.2 ClassPathXmlApplicationContext2. DefaultL

2023-10-15 20:44:01 151

原创 01-spring源码概述

以上Bean的生命周期只是多数情况下bean的生命周期,实际上Bean的创建不仅仅是反射一种,也有其他方式,比如FactoryBean。在不同的阶段要处理不同的工作,应该怎么办?观察者模式:监听器,监听事件,多播器(广播器)。

2023-10-15 20:43:09 224

原创 0-spring源码开班典礼--学习源码的方法论

这几项内容,设计模式需要比较熟,其他可以后续慢慢补。

2023-10-15 20:40:59 265

原创 Rachel‘s English - speaking

link:linklinklinklink

2023-10-14 09:32:26 200

原创 mybatis如何生成和执行动态sql

include> 标签由XMLIncludeTransformer.applyIncludes()处理,同时还会处理 标签下的标签和“${}"占位符。作用是引入由标签定义的sql片段,实际在XMLMapperBuilder.sqlElement()解析。在CachingExecutor.query()生成真正待执行的sql。进入getBoundSql(),

2023-08-12 14:53:54 1386

空空如也

空空如也

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

TA关注的人

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