12Web 框架
Web 框架、SpringMVC、Spring、MyBatis 与 Spring Boot第一章.Web 核心概念1.1 Web 项目是什么1.Web 项目: 通过浏览器、App、小程序等客户端访问服务器资源的项目。 2.服务器端: 负责接收请求、处理业务、访问数据库、返回响应。 3.客户端: 负责展示页面、收集用户输入、发起请求。浏览器 / App / 小程序 | | HTTP 请求 v Web 服务器 / 后端程序 | | 查询数据库 / 调用服务 v 数据库 / 其他系统1.2 C/S 和 B/S架构全称说明示例C/SClient/Server客户端需要安装专门软件QQ、微信桌面端B/SBrowser/Server使用浏览器访问系统电商后台、管理系统1.C/S: 客户端功能强,但安装和升级成本高。 2.B/S: 用户只需要浏览器,部署和升级集中在服务器端。 3.Java Web 学习主要围绕 B/S 架构。1.3 静态资源和动态资源类型说明示例静态资源内容固定服务器直接返回HTML、CSS、JS、图片动态资源服务器运行程序后生成结果Controller 接口、查询数据库结果1.静态资源: 不需要执行后端业务逻辑。 2.动态资源: 需要 Java 程序处理请求,再生成响应数据。1.4 HTTP 协议1.HTTP: HyperText Transfer Protocol,超文本传输协议。 2.作用: 规定客户端和服务器之间请求、响应的数据格式。 3.特点: a.基于请求和响应 b.客户端主动发起请求 c.服务器处理后返回响应1.5 Web 服务器1.Web 服务器: 接收 HTTP 请求,管理 Web 应用,返回 HTTP 响应。 2.常见服务器: Tomcat Jetty Undertow 3.Spring Boot: 内置 Tomcat,可以直接启动 Web 项目。第二章.Spring、Spring Framework 和 Spring Boot2.1 Spring 是什么1.Spring: Java 企业级开发生态。 2.Spring Framework: Spring 生态的基础框架,提供 IoC、AOP、事务、MVC 等能力。 3.Spring Boot: 基于 Spring Framework 的快速开发脚手架。 通过自动配置和场景启动器简化项目搭建。2.2 三者关系Spring 生态 ├── Spring Framework │ ├── IoC / DI │ ├── AOP │ ├── 声明式事务 │ └── SpringMVC └── Spring Boot ├── 自动配置 ├── 场景启动器 ├── 内置服务器 └── 快速部署2.3 Spring Boot Web 快速体验依赖dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency启动类import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; SpringBootApplication public class WebApplication { public static void main(String[] args) { SpringApplication.run(WebApplication.class, args); } }Controllerimport org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; RestController public class HelloController { GetMapping(/hello) public String hello() { return Hello Spring Boot; } }访问:http://localhost:8080/hello2.4 场景启动器1.starter: Spring Boot 提供的场景依赖集合。 2.spring-boot-starter-web: 自动引入 SpringMVC、Jackson、Tomcat 等 Web 开发依赖。 3.好处: 不需要手动维护一堆依赖版本。第三章.HTTP 协议3.1 HTTP 请求格式请求行 请求头 空行 请求体示例:POST /users HTTP/1.1 Host: localhost:8080 Content-Type: application/json {username:tom,age:18}1.请求行: 包含请求方式、请求路径、协议版本。 2.请求头: 描述客户端、内容类型、认证信息等。 3.请求体: POST、PUT 等请求常用来提交 JSON 或表单数据。3.2 HTTP 响应格式响应行 响应头 空行 响应体示例:HTTP/1.1 200 OK Content-Type: application/json {code:200,message:成功,data:null}3.3 常见请求方式请求方式语义常见用途GET查询资源查询列表、详情POST新增资源新增用户PUT整体更新资源修改用户全部信息PATCH局部更新资源修改用户部分字段DELETE删除资源删除用户3.4 常见状态码状态码含义说明200OK请求成功201Created创建成功400Bad Request请求参数错误401Unauthorized未登录或认证失败403Forbidden没有权限404Not Found资源不存在405Method Not Allowed请求方式不支持500Internal Server Error服务器内部错误第四章.SpringMVC 接收请求数据4.1 SpringMVC 的作用1.SpringMVC: Spring Framework 中的 Web 层框架。 2.主要职责: a.接收 HTTP 请求 b.解析请求参数 c.调用业务层 d.返回响应数据4.2 Controller 基础注解注解作用Controller标记控制层组件通常返回页面RestControllerController ResponseBody通常返回 JSONRequestMapping映射请求路径GetMapping映射 GET 请求PostMapping映射 POST 请求PutMapping映射 PUT 请求DeleteMapping映射 DELETE 请求import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; RestController RequestMapping(/users) public class UserController { GetMapping public String list() { return 查询用户列表; } }4.3 QueryString 参数接收请求:GET /users?usernametomage18代码:import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; RestController public class UserController { GetMapping(/users) public String list(RequestParam String username, RequestParam Integer age) { return username : age; } }1.RequestParam: 接收查询字符串参数或表单参数。 2.如果参数名和形参名一致: 简单场景可以省略 RequestParam。4.4 路径参数接收请求:GET /users/1001代码:import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; RestController public class UserController { GetMapping(/users/{id}) public String detail(PathVariable Long id) { return 查询用户: id; } }4.5 JSON 参数接收请求体:{ username: tom, password: 123456, age: 18 }实体类:public class User { private Long id; private String username; private String password; private Integer age; public Long getId() { return id; } public void setId(Long id) { this.id id; } public String getUsername() { return username; } public void setUsername(String username) { this.username username; } public String getPassword() { return password; } public void setPassword(String password) { this.password password; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age age; } }Controller:import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; RestController public class UserController { PostMapping(/users) public String save(RequestBody User user) { return 保存用户: user.getUsername(); } }RequestBody: 把请求体中的 JSON 数据转换成 Java 对象。4.6 请求头接收import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RestController; RestController public class HeaderController { GetMapping(/token) public String token(RequestHeader(Authorization) String token) { return token; } }4.7 原生请求对象import jakarta.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; RestController public class NativeController { GetMapping(/native) public String nativeRequest(HttpServletRequest request) { return request.getMethod() : request.getRequestURI(); } }第五章.SpringMVC 响应数据5.1 前后端分离和混合开发模式后端返回前端职责前后端分离JSON 数据独立前端项目渲染页面混合开发页面或模板后端负责页面渲染当前主流: 前后端分离,后端主要返回 JSON。5.2 返回 JSONimport org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; RestController public class UserController { GetMapping(/user) public User user() { User user new User(); user.setId(1L); user.setUsername(tom); return user; } }1.RestController: 方法返回值会直接写入响应体。 2.Jackson: Spring Boot Web 默认引入,负责 Java 对象和 JSON 转换。5.3 统一返回结果public class ResultT { private Integer code; private String message; private T data; public Result() { } public Result(Integer code, String message, T data) { this.code code; this.message message; this.data data; } public static T ResultT success(T data) { return new Result(200, 成功, data); } public static T ResultT fail(String message) { return new Result(500, message, null); } public Integer getCode() { return code; } public String getMessage() { return message; } public T getData() { return data; } }使用:GetMapping(/users/{id}) public ResultUser detail(PathVariable Long id) { User user new User(); user.setId(id); user.setUsername(tom); return Result.success(user); }5.4 转发和重定向方式说明地址栏是否变化是否共享 request转发服务器内部跳转不变是重定向浏览器重新发请求变化否GetMapping(/forward) public String forward() { return forward:/index.html; } GetMapping(/redirect) public String redirect() { return redirect:/index.html; }5.5 ResponseEntityimport org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; RestController public class ResponseController { GetMapping(/response) public ResponseEntityResultString response() { return ResponseEntity .status(HttpStatus.CREATED) .body(Result.success(创建成功)); } }ResponseEntity: 可以同时控制响应状态码、响应头和响应体。第六章.RESTFul 风格6.1 RESTFul 的介绍1.RESTFul: 一种接口设计风格。 2.核心思想: 使用 URL 表示资源。 使用 HTTP 请求方式表示操作。 3.示例资源: /users /users/{id}6.2 RESTFul 接口设计操作请求方式路径说明查询用户列表GET/users查询多个查询用户详情GET/users/{id}查询一个新增用户POST/users新增修改用户PUT/users/{id}更新删除用户DELETE/users/{id}删除6.3 RESTFul Controller 案例import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; RestController RequestMapping(/users) public class UserRestController { GetMapping public ResultString list() { return Result.success(查询用户列表); } GetMapping(/{id}) public ResultString detail(PathVariable Long id) { return Result.success(查询用户: id); } PostMapping public ResultString save(RequestBody User user) { return Result.success(新增用户: user.getUsername()); } PutMapping(/{id}) public ResultString update(PathVariable Long id, RequestBody User user) { return Result.success(修改用户: id); } DeleteMapping(/{id}) public ResultString delete(PathVariable Long id) { return Result.success(删除用户: id); } }第七章.SpringMVC 高级扩展7.1 全局异常处理1.问题: Controller 中到处写 try...catch 会导致代码重复。 2.解决: 使用 RestControllerAdvice ExceptionHandler 统一处理异常。import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; RestControllerAdvice public class GlobalExceptionHandler { ExceptionHandler(Exception.class) public ResultVoid handleException(Exception e) { return Result.fail(服务器异常: e.getMessage()); } ExceptionHandler(MethodArgumentNotValidException.class) public ResultVoid handleValidException(MethodArgumentNotValidException e) { String message e.getBindingResult().getFieldError().getDefaultMessage(); return Result.fail(message); } }7.2 参数校验依赖:dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-validation/artifactId /dependency实体类:import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; public class UserSaveParam { NotBlank(message 用户名不能为空) private String username; NotBlank(message 密码不能为空) private String password; NotNull(message 年龄不能为空) private Integer age; public String getUsername() { return username; } public String getPassword() { return password; } public Integer getAge() { return age; } }Controller:import jakarta.validation.Valid; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; RestController public class UserValidController { PostMapping(/valid/users) public ResultString save(Valid RequestBody UserSaveParam param) { return Result.success(保存成功); } }7.3 拦截器1.拦截器: SpringMVC 提供的请求拦截机制。 2.常见用途: a.登录校验 b.权限检查 c.接口耗时统计 3.执行位置: 进入 Controller 前后。拦截器:import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; public class LoginInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String token request.getHeader(Authorization); if (token null || token.isBlank()) { response.setStatus(401); return false; } return true; } }配置:import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; Configuration public class WebConfig implements WebMvcConfigurer { Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()) .addPathPatterns(/users/**) .excludePathPatterns(/login); } }7.4 过滤器和拦截器对比对比FilterInterceptor所属体系Servlet 规范SpringMVC拦截范围更底层可拦截更多资源主要拦截 Controller 请求获取 Spring Bean不如拦截器方便更方便常见用途编码、跨域、通用过滤登录、权限、业务拦截第八章.MVC 模式和三层架构8.1 MVC 设计模式1.Model: 模型,负责业务数据和业务处理。 2.View: 视图,负责页面展示。 3.Controller: 控制器,负责接收请求、调用模型、选择响应。8.2 三层架构层常见命名职责表现层Controller接收请求、返回响应业务层Service处理业务逻辑数据访问层DAO / Mapper操作数据库Controller ↓ Service ↓ DAO / Mapper ↓ Database8.3 MVC 和三层架构区别1.MVC: 更偏向 Web 表现层设计模式。 2.三层架构: 更偏向整体后端代码分层。 3.实际开发: Controller 属于 MVC 中的 C, 同时也是三层架构中的表现层。8.4 用户模块三层拆分示例Mapper:public interface UserMapper { ListUser selectList(); User selectById(Long id); int insert(User user); int update(User user); int deleteById(Long id); }Service:public interface UserService { ListUser list(); User detail(Long id); void save(User user); void update(Long id, User user); void delete(Long id); }Controller:RestController RequestMapping(/users) public class UserController { private final UserService userService; public UserController(UserService userService) { this.userService userService; } GetMapping public ResultListUser list() { return Result.success(userService.list()); } }第九章.Spring IoC 和 DI9.1 IoC 的介绍1.IoC: Inversion of Control,控制反转。 2.传统方式: 自己 new 对象,自己维护依赖关系。 3.Spring 方式: 对象交给 Spring 容器创建和管理。 4.核心好处: 降低对象之间的耦合。9.2 DI 的介绍1.DI: Dependency Injection,依赖注入。 2.作用: Spring 把一个对象需要的依赖自动注入进来。9.3 组件管理注解注解常见位置说明Component通用组件不好归类时使用Controller表现层ControllerService业务层ServiceRepository数据访问层DAO / MapperService public class UserServiceImpl implements UserService { }9.4 包扫描1.Spring Boot 默认扫描启动类所在包及其子包。 2.组件类要放在启动类同包或子包下。 3.否则需要使用 ComponentScan 指定扫描范围。SpringBootApplication public class WebApplication { public static void main(String[] args) { SpringApplication.run(WebApplication.class, args); } }9.5 属性注入构造方法注入Service public class UserServiceImpl implements UserService { private final UserMapper userMapper; public UserServiceImpl(UserMapper userMapper) { this.userMapper userMapper; } }Autowired 注入Service public class UserServiceImpl implements UserService { Autowired private UserMapper userMapper; }Resource 注入Service public class UserServiceImpl implements UserService { Resource private UserMapper userMapper; }推荐: 业务代码优先使用构造方法注入, 依赖更清晰,也更方便测试。9.6 读取配置参数application.properties:app.namestudent-web app.version1.0.0代码:import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; Component public class AppInfo { Value(${app.name}) private String name; Value(${app.version}) private String version; }第十章.Spring Boot 测试10.1 测试依赖dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency10.2 测试 Spring 组件import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; SpringBootTest public class UserServiceTest { Autowired private UserService userService; Test public void testList() { System.out.println(userService.list()); } }10.3 测试 Web 接口import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; SpringBootTest AutoConfigureMockMvc public class UserControllerTest { Autowired private MockMvc mockMvc; Test public void testList() throws Exception { mockMvc.perform(get(/users)) .andExpect(status().isOk()); } }

相关新闻

AI模型初了解

AI模型初了解

一、主流模型实力扫描 阵营代表模型特点与强项近期表现国际顶流Anthropic Claude 系列 (如 Claude Opus 4.8)综合能力强,尤其在编程、长文本、智能体任务上表现顶尖,常常霸榜-1-9。在AiPy测评中以91.3%成功率登顶-1,在Arena代码榜上垄断前九…

2026/10/13 0:07:02 阅读更多 →
Layout开发者指南:如何在Rust项目中集成Graphviz渲染功能

Layout开发者指南:如何在Rust项目中集成Graphviz渲染功能

Layout开发者指南:如何在Rust项目中集成Graphviz渲染功能 【免费下载链接】layout Layout is a rust library and a tool that renders Graphviz dot files. 项目地址: https://gitcode.com/gh_mirrors/layou/layout Layout是一个强大的Rust库和工具&#xf…

2026/10/13 22:57:47 阅读更多 →
BuildBuddy容器化部署:Docker与Kubernetes环境的最佳实践

BuildBuddy容器化部署:Docker与Kubernetes环境的最佳实践

BuildBuddy容器化部署:Docker与Kubernetes环境的最佳实践 【免费下载链接】buildbuddy BuildBuddy is an open source Bazel build event viewer, result store, remote cache, and remote build execution platform. 项目地址: https://gitcode.com/gh_mirrors/b…

2026/10/14 8:59:22 阅读更多 →

最新新闻

rsync远程文件同步实战:增量算法、参数避坑与自动化备份方案

rsync远程文件同步实战:增量算法、参数避坑与自动化备份方案

rsync远程文件同步这事儿,我是被逼着认真研究的。之前负责一个模拟项目X的数据分发,每天要把一批几百GB的日志从生产目录同步到另一台备份服务器。一开始图省事用scp全量拷贝,结果磁盘I/O和带宽吃紧,同步窗口越拉越长,…

2026/10/14 21:41:36 阅读更多 →
GitHub私有仓库协作保姆级教程:从邀请协作者到权限配置与故障排查

GitHub私有仓库协作保姆级教程:从邀请协作者到权限配置与故障排查

先说结论:直接把私有仓库的地址发给对方,并不会让“配合一起开发”自动发生。很多人第一次操作是在仓库页面上复制了一个https://github.com/你的用户名/仓库名.git发给同事,结果对方点开是个404,或者 clone 之后 push 被拒绝。这…

2026/10/14 21:41:36 阅读更多 →
FusionCompute 8.0.0 部署实战:从解压到纳管的避坑指南

FusionCompute 8.0.0 部署实战:从解压到纳管的避坑指南

简介:FusionCompute_Installer-8.0.0.zip 面向企业级虚拟化平台的学习者与运维人员,提供华为 FusionCompute 8.0.0 的完整安装与部署组件,帮助读者搭建资源池化、自动化运维的云计算基础设施环境。压缩包共 327 个文件,约 270.58M…

2026/10/14 21:41:36 阅读更多 →
SYNBO CLUB预上线解读:KOL冷启动的底层逻辑与运营策略

SYNBO CLUB预上线解读:KOL冷启动的底层逻辑与运营策略

SYNBO CLUB 的预上线消息一出,我所在的运营圈子里已经有人在讨论:全球 KOL 抢滩入驻,这阵仗比很多产品正式上线还热闹。我做了多年用户增长和社区冷启动,看到这类标题第一反应其实是警惕——预上线阶段终于被越来越多人重视是好事…

2026/10/14 21:41:36 阅读更多 →
Paged.js 实战:浏览器端生成印刷级 PDF 的分页控制与避坑指南

Paged.js 实战:浏览器端生成印刷级 PDF 的分页控制与避坑指南

简介:这是一份面向前端开发者的 paged.js 系统教程资源,聚焦如何用 JavaScript 将 HTML 内容转换为带优雅分页效果的 PDF 文档,适合需要在浏览器端生成高质量打印或导出文档的开发者学习。压缩包共 32401 个文件,约 40.16MB&#…

2026/10/14 21:41:36 阅读更多 →
深入解析 docker-ce 中 google.golang.org/genproto:Go 生成的 Protobuf 与 gRPC API 包

深入解析 docker-ce 中 google.golang.org/genproto:Go 生成的 Protobuf 与 gRPC API 包

容器运行时云原生 【免费下载链接】docker-ce :warning: This repository is deprecated and will be archived (Docker CE itself is NOT deprecated) see the https://github.com/docker/docker-ce/blob/master/README.md :warning: 项目地址: https://gitcode.co…

2026/10/14 21:40:34 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →