以自然语言的方式使用 Playwright MCP 进行浏览器自动化操作
由上文「MCP 是什么?它是如何工作的?」可以知道,MCP 是大语言模型连接外部工具或服务的桥梁。
Playwright 是微软开源的一款类似 Selenium 的浏览器自动化测试框架。相比 Selenium,Playwright 更加轻量、功能更丰富,且执行速度更快。大语言模型爆发之前,虽然 Playwright 也能胜任一些自动化任务,但主要还是用于自动化测试。
阅读更多由上文「MCP 是什么?它是如何工作的?」可以知道,MCP 是大语言模型连接外部工具或服务的桥梁。
Playwright 是微软开源的一款类似 Selenium 的浏览器自动化测试框架。相比 Selenium,Playwright 更加轻量、功能更丰富,且执行速度更快。大语言模型爆发之前,虽然 Playwright 也能胜任一些自动化任务,但主要还是用于自动化测试。
阅读更多自 2022 年底 ChatGPT 横空出世以来,目前业界已涌现出多个优秀的大语言模型(Large Language Models,LLM),人们的日常生活和工作正在被大语言模型加速改变着。
大语言模型虽然很强大,但也有一些局限性,如:其知识被固定在训练结束之时,无法跟着当下动态的世界进行「自动更新」。所以,如果仅使用大语言模型训练好的数据解决问题,而不借助任何方式获取新的数据的话,会大大限制大语言模型的能力上限。
阅读更多P6Spy 是一个用于拦截和记录应用程序和数据库之间的所有 JDBC 操作的开源 Java 库。P6Spy 是无代码侵入的,也就是说,我们无需修改应用程序代码,只需做一些简单的配置,即可使用 P6Spy 这个横在应用程序和 JDBC 驱动之间的「间谍」来捕获所有使用的 SQL 语句和其执行细节。
阅读更多MapStruct 是一款基于注解的、用于 Java 对象映射的代码生成器。借助 MapStruct,我们做对象转换时,只需按照约定指定映射关系,真正的逐字段映射交给 MapStruct 去做即可,可以省去大量手工代码的编写。而且,MapStruct 是在编译期生成映射代码,若有字段类型不一致的映射,会提前报错,其生成的代码更加安全可靠。再者,MapStruct 生成的代码的执行性能与我们手工编写的代码无异,远优于市面上流行的几款基于反射的映射框架(如 BeanUtils、ModelMapper 等)。
阅读更多Spring Event 是 Spring 框架提供的一个核心组件,其允许服务内部不同模块之间通过观察者模式(发布-订阅模式)进行通信,从而实现模块间的解耦。
即 Spring Event 是一种事件驱动的编程模型,一个模块在做完一件事后,无需直接调用其它模块处理后续逻辑,而是发布一个事件出来,由其它对该事件感兴趣的模块订阅并处理这个事件,事件发布者无需关注订阅者是谁,从而实现模块间的轻松解耦。
阅读更多在 Spring Boot 工程中,若选用的持久化层框架是 JPA,那么要想捕捉所有实体的增删改操作,该怎么实现呢?
下面给一个具体点的需求,然后我们来探讨如何实现:「假设我们要实现一个实体(表)操作监控模块,即捕获 Spring Boot 应用程序中所有实体的变更(包括增、删、改)操作,然后将这些操作记录到一张表中。」
阅读更多在基于 Spring Boot 的业务开发中,我们有时会遇到这样的场景:即定义了一个通用接口,而该接口拥有多个实现类。在调用这些实现类时,我们通常需要编写一个工厂方法,该工厂方法可以根据指定的参数获取到对应的实现类。
那么,提供该工厂方法的类就是一个服务工厂,本文即是探讨如何优雅的编写这个服务工厂。
阅读更多DataX 是阿里开源的一款基于 Java 编写的非常实用的数据迁移工具,其不仅支持关系型数据库间的数据迁移,还支持关系型数据库与非关系型数据库间的数据迁移。其使用也非常的简单,只需安装 JDK、配置 JSON 即可,无须关注太多实现细节。其性能也非常了得,能满足生产环境的数据迁移要求。
阅读更多本人在对 Spring Data Neo4j 的实际使用中,发现一个问题,即:配置自定义 TransactionManager 后,指定 spring.data.neo4j.database 会报错。本文特对该问题进行记录、分析和解决,以给面临相同问题的朋友作参考。
本文将以实例的方式探索「如何使用 Spring Data 同时访问 MySQL 和 Neo4j 数据库?」,涉及 Spring Boot 中多个数据源的配置、多个事务的配置,以及多组 Repository 的使用。
阅读更多