- 博客(62)
- 资源 (1)
- 收藏
- 关注
原创 MyBatis-Plus 中 BaseMapper 的常见误用及解决方案
MyBatis-Plus 提供了一个BaseMapper接口,内置了一些常用的数据库操作方法,如增、删、改、查等。这些方法对大部分应用场景都适用,可以减少我们编写重复代码的工作。在使用 MyBatis-Plus 时,正确使用BaseMapper可以大大简化数据库操作,但如果不注意一些细节,可能会导致方法不生效或返回错误。没有正确继承BaseMapper。重复实现BaseMapper中的通用方法。自定义方法与 SQL 映射不匹配。忘记在 Mapper 接口上加@Mapper注解。
2025-04-15 16:32:51
811
原创 在 MyBatis-Plus 中处理事务问题:确保数据正确提交与回滚
在使用 MyBatis-Plus 进行开发时,正确管理事务非常重要,以保证数据的一致性和完整性。通过合理配置注解、确保数据库操作在同一事务中执行以及检查事务管理器与数据库的兼容性,可以有效避免事务相关的问题。希望这篇文章能够帮助你更好地理解和解决 MyBatis-Plus 中的事务管理问题,提升系统的稳定性和可靠性。通过对事务管理的理解与操作,你不仅能解决事务问题,还能优化应用程序的可靠性和性能。使用注解正确地管理事务,将使得你对数据库操作更加得心应手,同时减少数据丢失和不一致的风险。
2025-04-15 16:24:49
726
原创 MyBatis-Plus 缓存配置问题及解决方案
缓存的使用可以有效地提高数据库查询的性能,但同时也带来了一些复杂的同步问题。开启并配置二级缓存:在 MyBatis 配置文件中启用二级缓存,并选择合适的缓存实现框架(如 Ehcache、Redis)。合理使用缓存注解:使用@Cacheable和@CachePut注解来标记需要缓存的方法,并在数据更新时清除或更新缓存。确保缓存与数据库同步:当数据库中的数据发生变化时,需要及时更新或清除缓存,以避免脏数据。选择合适的缓存策略:根据具体场景选择合适的缓存过期策略和缓存存储方式,确保缓存的生命周期合理。
2025-04-15 16:21:57
816
原创 SQL注入与安全问题:如何避免在 MyBatis-Plus 中出现 SQL 注入漏洞?
SQL 注入(SQL Injection)是一种攻击技术,攻击者通过将恶意的 SQL 语句插入到应用程序的输入中,从而改变原有的 SQL 查询逻辑。由于动态拼接 SQL 语句时未对输入参数进行过滤和校验,攻击者就能够执行任意 SQL 操作,甚至能够获取、修改或删除数据库中的数据。使用 MyBatis-Plus 的Wrapper对象:避免手动拼接 SQL,使用安全的参数化查询。参数化查询:通过预编译的方式,将用户输入作为参数传递给数据库,避免 SQL 注入。开启 MyBatis 的 SQL 注入防护功能。
2025-04-15 16:12:20
673
原创 MyBatis-Plus 中执行自定义 SQL 的常见问题及解决方法
参数绑定不正确:传入的参数与 SQL 中的占位符没有正确对应。返回结果类型不匹配:SQL 查询的结果类型与方法返回值的类型不一致。SQL 注解使用不当:如@Select@Update等注解中的 SQL 语句错误或格式不当。接下来,我们将详细讲解这些问题及解决方法。MyBatis-Plus 中执行自定义 SQL 时,最常见的错误之一就是返回类型与查询结果不匹配。查询的字段类型和方法的返回类型不一致。返回的结果是集合,但方法的返回类型是单个对象。
2025-04-15 15:44:05
890
原创 MyBatis-Plus 乐观锁使用问题:@Version 注解无法生效的原因与解决方案
在使用 MyBatis-Plus 的乐观锁时,遇到@Version实体类中的@Version注解未正确标注,或者数据库表中缺少version字段。数据库表中未设置主键或唯一索引。未正确配置乐观锁插件。通过确保这些步骤的正确性,可以有效实现乐观锁功能,避免高并发情况下的数据冲突和更新丢失。希望这篇文章能帮助你解决 MyBatis-Plus 乐观锁在使用中的常见问题!在 Spring Boot 中配置多个数据源并使用 MyBatis-Plus 进行数据源切换-CSDN博客。
2025-04-15 13:11:02
967
原创 在 Spring Boot 中配置多个数据源并使用 MyBatis-Plus 进行数据源切换
配置多个数据源并在 Spring Boot 中进行切换是一个常见的需求,尤其是在涉及多数据库架构或者分库分表的场景下。通过合理使用@Primary@Qualifier和配置,配合第三方动态数据源库,我们可以轻松实现数据源切换。最重要的是,要根据实际需求选择合适的配置方式,确保数据源的切换逻辑清晰、稳定。希望本文能够帮助你解决 MyBatis-Plus 无法切换多个数据源的问题,提升你的项目配置和开发效率。使用 MyBatis-Plus 分页插件时返回所有数据的解决方案-CSDN博客。
2025-04-15 11:28:29
1258
原创 使用 MyBatis-Plus 分页插件时返回所有数据的解决方案
在使用 MyBatis-Plus 进行分页查询时,常见问题通常出现在分页插件的配置、分页参数的传递以及查询方法的使用上。通过确保分页插件正确配置、使用Page<T>对象传入查询方法,并注意分页参数的传递,可以轻松实现有效的分页查询。希望本文的介绍能够帮助你解决分页查询不生效的问题,提升开发效率和性能。MyBatis-Plus SQL 执行异常解决方案:深入分析与实践-CSDN博客MyBatis-Plus 自动配置失效:深入分析与解决方案-CSDN博客。
2025-04-15 11:22:48
838
原创 MyBatis-Plus SQL 执行异常解决方案:深入分析与实践
在使用 MyBatis-Plus 构建查询时,出现 SQL 执行异常的原因通常与参数类型不匹配、SQL 语法错误、特殊字符未转义、全局配置问题等因素有关。确保传入的查询条件与数据库字段类型一致,避免类型不匹配。启用 MyBatis 的日志功能,查看实际生成的 SQL 语句,确保 SQL 语法正确。配置 MyBatis-Plus 的,确保全局配置正确,满足需求。通过这些方法,你可以更轻松地解决 SQL 执行异常问题,保证 MyBatis-Plus 在你的项目中顺利运行。
2025-04-15 11:18:01
611
原创 MyBatis-Plus 自动配置失效:深入分析与解决方案
MyBatis-Plus 自动配置失效的问题通常是由于Mapper 接口扫描路径配置不正确、MyBatis 配置类未加载、数据源配置问题等引起的。确保配置正确,扫描到 Mapper 接口所在的包。确保 MyBatis-Plus 配置类已正确加载,例如分页插件、全局配置等。检查数据源配置,确保数据库连接正确。通过这些步骤,你可以快速排查并解决 MyBatis-Plus 自动配置失效的问题,让你的项目顺利运行。
2025-04-15 11:08:57
910
原创 解决 MyBatis-Plus 和 Spring Boot 依赖冲突问题,轻松搞定!
确保版本兼容性:查看 MyBatis-Plus 和 Spring Boot 官方文档,确保版本兼容。使用 Spring Boot 的父级 POM:使用来统一管理依赖版本,避免手动管理版本带来的麻烦。查看依赖树:使用 Maven 或 Gradle 查看依赖关系,找出冲突的依赖。排除冲突的依赖:利用exclusions标签排除冲突的依赖。升级依赖版本:定期升级框架版本,解决兼容性问题。解决这些依赖冲突后,你的项目就可以顺利运行了。希望今天分享的这些技巧对你有所帮助。
2025-04-15 11:04:01
671
原创 Spring Boot自定义注解实战:深入探索与技术解析
注解(Annotation)是Java的一种特殊类型,用于在代码中插入元数据(metadata)。注解本身不影响程序逻辑的执行,而是由其他工具(如编译器或运行时环境)处理。Spring框架大量使用注解,例如@Autowired@Component等。自定义注解可以帮助我们简化代码,提高开发效率,避免重复代码。例如,我们可以通过自定义注解来实现日志记录、权限控制、参数校验等功能,而不需要在每个方法中写重复的逻辑。@interface:声明一个注解类型。元注解。
2025-04-11 16:11:03
878
原创 高级爬虫优化:如何处理大规模数据抓取与分布式爬虫架构
大规模数据抓取的挑战不仅在于如何提高抓取速度,还在于如何有效管理和协调各个爬虫节点,避免重复抓取、保证数据的完整性以及确保系统的高可用性。通过使用Kafka、Redis等分布式组件,可以有效地构建一个高效、可扩展的分布式爬虫架构。在这个架构中,任务调度、消息传递、去重、数据存储等关键环节都得到了优化,从而能够高效处理大规模数据抓取任务。希望本文对你理解和构建大规模分布式爬虫架构有所帮助。通过合适的技术选择和合理的架构设计,可以有效提升爬虫系统的性能和可扩展性。
2025-04-11 10:12:59
883
原创 爬虫项目实战:从需求到部署的完整Java爬虫开发流程
本文从需求分析、系统设计、开发实现到部署,详细讲解了一个完整的Java爬虫项目开发流程。通过这个案例,我们可以看到爬虫项目从构思到实际应用所涉及的技术和实践。通过合理的架构设计和代码实现,可以开发出一个高效、稳定且规避反爬虫机制的爬虫系统。希望这篇文章能够帮助你深入理解Java爬虫的开发流程,并能够帮助你构建一个实际的爬虫项目。
2025-04-11 10:12:05
744
原创 爬虫的合法性与伦理:如何合法合规地进行网页数据抓取
爬虫的合法性,简单来说,指的是在抓取网站数据时,是否遵循法律规定、网站政策以及道德约束。在不同的国家和地区,关于爬虫的法律规定有所不同。例如,在一些国家,未经许可抓取网站数据可能构成对知识产权的侵犯、违反隐私法规,甚至涉及到计算机犯罪。合法合规地进行网页数据抓取不仅是对法律的遵守,也是对网站所有者、用户以及数据隐私的尊重。通过遵守robots.txt协议、阅读服务条款、控制抓取频率、优先使用API接口以及遵循隐私保护规定,开发者可以确保爬虫行为符合法律和道德规范。
2025-04-11 10:11:13
1151
原创 爬虫监控与错误处理:如何应对爬虫中的异常与故障
爬虫的监控和错误处理是确保爬虫高效、稳定运行的关键。在设计爬虫时,必须从异常捕获、日志记录、自动恢复等方面入手,确保爬虫能及时响应并处理运行中的各种问题。通过合理的监控机制、异常处理策略和日志记录,我们能够实现高效且可靠的爬虫系统,提升数据抓取的质量和稳定性。
2025-04-11 10:09:48
1059
原创 Java爬虫中的数据清洗与存储:如何处理不规则数据
缺失值:数据中某些字段值为空或缺失。重复数据:爬取的结果中包含多次相同的记录。格式错误:数据的格式不符合预期,如日期格式、数字格式等。不一致数据:不同来源的数据存在不一致的情况,如单位不统一、拼写错误等。噪音数据:包含无关信息的数据,如广告、垃圾评论等。为了能够进行有效的数据分析,我们必须对这些脏数据进行清洗,去除无用或错误的数据,保证数据的质量。数据清洗是爬虫过程中不可或缺的步骤,通过有效的清洗技术和工具,我们可以确保数据质量,避免脏数据影响后续的分析和决策。
2025-04-11 10:09:00
1432
原创 反向工程与API爬虫:如何通过API抓取数据
API(Application Programming Interface)接口是应用程序之间进行通信的接口,它允许不同系统之间进行数据交互。在爬虫的语境下,API爬虫指的是通过调用目标网站的API接口,直接抓取数据,而不是像传统爬虫那样解析网页的HTML。通过API接口抓取数据相较于传统的HTML解析方式,不仅能提高抓取效率,还能避免被网页结构变化和反爬虫机制影响。我们可以通过浏览器开发者工具反向工程API接口,使用Python的requestsaiohttp等库实现高效抓取。
2025-04-10 10:08:05
1596
原创 并发爬取:使用Java多线程提高爬虫性能
通过合理利用Java的多线程和线程池技术,我们可以显著提高爬虫的性能,特别是在需要抓取大量网页的场景中。选择合适的线程池类型、控制并发数量以及合理设置任务延时,能够有效提升爬虫的速度,同时避免过度请求给目标网站带来负担。掌握并发爬取的技巧,将使你在大规模爬虫项目中更高效地完成任务。希望本文能帮助你深入理解Java多线程在爬虫中的应用,并帮助你构建更高效的爬虫系统!
2025-04-10 10:07:18
1473
原创 爬虫调度与代理池:如何避免爬虫被封
爬虫的调度与代理池策略对于避免被封禁至关重要。通过合理设计调度策略和代理池,我们可以有效分散请求来源,避免同一IP频繁请求导致封禁。合理设置请求间隔,避免过于频繁的请求。使用代理池,并定期更换代理IP。增加请求的随机性,模拟正常用户的访问行为。结合验证码识别服务,应对复杂的反爬虫措施。通过优化爬虫调度与代理池策略,不仅能够提高爬虫的稳定性,还能有效降低封禁的风险,实现更高效的爬取任务。
2025-04-10 10:06:30
1035
原创 深度解析爬虫中的反爬虫技术与应对策略
随着爬虫技术的广泛应用,网站逐渐面临数据盗用、爬取带宽浪费等问题,因此推出了各种反爬虫技术来识别和阻止恶意爬虫。反爬虫技术的核心目标是区分人类用户与自动化程序。网站通过分析请求的模式、访问频率、HTTP头部信息等多方面数据来识别爬虫。验证码IP封禁JavaScript验证User-Agent检查Cookie验证接下来,我们将逐一分析这些反爬虫技术,并探讨如何用 Java 等技术绕过它们。
2025-04-10 10:05:01
1265
原创 网页数据存储与管理:如何将抓取到的数据存入数据库
本文介绍了如何将爬虫抓取到的数据存储在数据库中,并深入分析了 MySQL 和 MongoDB 两种数据库的特点和适用场景。对于结构化数据,MySQL 是一个理想的选择;而对于灵活、非结构化的数据,MongoDB 提供了更高的灵活性和扩展性。在实际应用中,选择合适的数据库并结合最佳实践,可以帮助我们有效地管理爬取的数据,确保其长期可用性和可管理性。
2025-04-10 10:04:20
972
原创 深入分析XPath与CSS选择器在爬虫中的应用
XPath是一种用于在XML文档中查找信息的语言,后来被HTML文档的解析所广泛使用。XPath可以通过路径的形式来定位HTML文档中的元素。路径表达式:XPath使用类似于文件路径的表达式来定位节点。运算符:XPath支持多种运算符,如//等,用于选择节点、属性及其值。在爬虫开发中,选择XPath还是CSS选择器取决于网页结构的复杂度和具体需求。XPath适用于复杂、层级多的数据提取,而CSS选择器在简单、常见元素定位上更加高效且易用。
2025-04-10 10:03:31
948
原创 如何使用 Selenium 处理动态网页:模拟浏览器操作抓取数据
Selenium是一个用于自动化浏览器操作的开源工具,支持多种浏览器(如 Chrome、Firefox、Safari 等)。Selenium 可以控制浏览器执行几乎所有操作,包括打开网页、点击按钮、输入文本、滚动页面、抓取动态加载的数据等,常用于 Web 自动化测试和数据爬取。Selenium 是一个强大的自动化测试和网页抓取工具,特别适用于动态加载的网页。在实际使用中,我们可以通过模拟用户操作、等待元素加载、滚动页面等手段,抓取动态加载的数据。
2025-04-10 10:02:40
1296
原创 Java爬虫入门:快速了解爬虫的基本概念与工作原理
爬虫(Crawler),又叫网络蜘蛛,是一种自动化程序,通过模拟用户的访问行为,自动抓取互联网上的信息。爬虫通常用于从大量网页中提取有价值的数据,数据可以是文本、图片、视频等。爬虫工作原理与人类浏览网页类似,只是它的速度和精度远高于人工。通过本文的介绍,我们对Java爬虫的基本概念、工作原理以及常见的应用场景有了初步的了解。爬虫技术在数据采集和分析中的重要性不言而喻,而Java作为一种高效的编程语言,提供了丰富的工具和库,帮助开发者快速构建爬虫应用。
2025-04-10 10:02:00
1230
原创 使用 Apache HttpClient 模拟浏览器请求,解决爬虫反爬问题
是 Apache 提供的一个高效、灵活、功能强大的 HTTP 请求库。它可以模拟浏览器发起 HTTP 请求,支持很多高级特性,如自动管理 Cookie、连接池管理、请求重定向、请求头设置等。HttpClient 可以帮助我们绕过一些简单的反爬虫机制,模拟正常用户行为。通过使用 Apache HttpClient,我们可以轻松模拟浏览器请求,绕过一些简单的反爬虫措施(如伪装 User-Agent、管理 Cookies、模拟请求延迟等)。
2025-04-10 10:01:07
1607
原创 使用 Jsoup 构建你的第一个 Java 爬虫
Jsoup是一个非常流行的 Java HTML 解析库,它能让我们从网页中抓取和解析数据。Jsoup 提供了许多简单易用的 API,用来处理 HTML 文档中的各种元素,比如表单、链接、图片、表格等等。简单易用:只需要几行代码就能完成网页的抓取和解析。功能强大:支持 CSS 选择器、DOM 操作、数据提取等。高效稳定:处理大型 HTML 文档时表现出色。
2025-04-10 09:59:47
1432
原创 区块链技术的未来:Java开发者如何迎接区块链的新时代
然而,区块链技术本身的快速发展也带来了新的挑战,尤其是如何在实际应用中实现高效、安全、可扩展的区块链系统。在区块链应用中,数据存储的效率对于性能至关重要。同时,随着更多区块链框架的涌现和技术的不断发展,Java开发者将在区块链的浪潮中走在前列,推动去中心化技术的广泛应用。区块链技术的未来充满了无限可能,Java作为一种成熟、强大的编程语言,完全能够帮助开发者迎接区块链新时代的挑战。智能合约是区块链应用中的核心组成部分,Java开发者可以通过优化智能合约的执行效率,减少不必要的计算,提高合约执行的速度。
2025-04-10 09:59:11
747
原创 绿色区块链:如何减少区块链的能源消耗
随着区块链技术的飞速发展,其应用场景不断拓展。然而,区块链在带来革命性创新的同时,也引发了一个不容忽视的问题——能源消耗。尤其是在工作量证明(Proof of Work, PoW)机制下,矿工为了解决复杂的数学题并竞争新区块的打包,导致了极高的能源消耗。这一问题不仅给环境带来了压力,也让区块链技术的可持续发展面临挑战。在这种背景下,绿色区块链技术应运而生,旨在通过优化共识机制、提升效率和降低能耗,实现区块链的可持续发展。
2025-04-10 09:58:48
601
原创 Java开发者的区块链学习路径:从基础到进阶
从基础的区块链原理、Java实现,到与以太坊的交互、智能合约开发,再到性能优化和高级共识机制的学习,Java开发者需要经历多阶段的学习路径才能完全掌握区块链技术。在这个过程中,结合实际项目进行练习,将能帮助你更好地理解区块链的应用场景和技术细节,最终成为区块链开发的专家。Java开发者如何参与区块链生态:工具与资源推荐-CSDN博客区块链的可扩展性挑战与解决方案:Java开发者视角-CSDN博客去中心化金融(DeFi):Java开发者如何搭建去中心化应用-CSDN博客。
2025-04-10 09:58:25
703
原创 隐私保护与区块链:零知识证明技术在Java中的实现
零知识证明是一种加密协议,允许一方(证明者)向另一方(验证者)证明某个声明为真,而不泄露除声明真实性以外的任何信息。简单来说,证明者可以通过一系列的数学操作,证明自己知道某个秘密(例如,密码、私钥等),而验证者无法从证明过程中获得任何其他信息。完整性:如果声明是真的,诚实的证明者能够说服验证者。可靠性:如果声明是假的,任何不诚实的证明者都不能说服验证者。零知识性:在证明过程中,验证者不会学到除声明真实性以外的任何信息。
2025-04-10 09:58:00
749
原创 如何在Java中实现区块链数据存储:LevelDB与BerkeleyDB
LevelDB 是 Google 开发的一个高性能键值数据库,专为高效存储和查询设计。它采用了LSM树(Log-Structured Merge Tree)数据结构,能够非常高效地处理大量的写入操作。高写入性能:由于LSM树的特性,LevelDB对于大量的顺序写入操作非常高效。轻量级:LevelDB不依赖于外部库,易于嵌入到应用程序中。持久性与压缩:LevelDB通过日志文件和快照机制保证数据持久性,并通过压缩技术减少存储空间。
2025-04-10 09:57:32
981
原创 Java开发者如何参与区块链生态:工具与资源推荐
区块链是一种去中心化的分布式账本技术,它通过加密技术确保数据的安全性和不可篡改性。区块链的核心理念是去中心化、透明性和不可更改。它能够消除中介信任,提供一个可靠、安全的交易环境。区块链应用的一个典型例子就是比特币,它依赖于区块链技术进行去中心化的支付。除此之外,区块链技术也在金融、医疗、供应链管理等领域获得了广泛的应用。
2025-04-09 15:49:23
885
原创 区块链的可扩展性挑战与解决方案:Java开发者视角
Layer 2是指构建在区块链主链(Layer 1)之上的协议或技术,旨在提升网络的吞吐量和降低交易延迟,同时保留主链的安全性。
2025-04-09 15:46:09
794
原创 去中心化金融(DeFi):Java开发者如何搭建去中心化应用
去中心化金融(DeFi)是利用区块链技术,通过智能合约实现传统金融服务的去中心化应用。这些服务通常不依赖于银行、证券公司等中介机构,而是通过智能合约直接在区块链上执行,确保透明、公开和去信任化。去中心化:消除了传统金融体系中的中介机构,用户直接通过智能合约与其他用户进行交互。可编程性:智能合约可以定制各种金融服务,能够灵活配置不同的功能。开放透明:所有的交易和服务都公开透明,任何人都可以查看和验证。无国界性:无需担心跨境支付、货币兑换等问题,任何有网络连接的人都可以参与。
2025-04-09 15:28:39
549
原创 区块链应用场景:供应链管理中的透明与追溯
区块链技术为供应链管理带来了革命性的变革,提升了信息透明度、数据安全性和供应链的可追溯性。通过利用Java与区块链交互的能力,我们可以实现更高效、安全的供应链管理系统。在未来,随着区块链技术的不断发展,更多创新的应用场景将在供应链管理中得到实现,助力各行各业提升管理效率,降低风险。如果你有任何问题,欢迎在评论区与我讨论。如何使用Java构建一个去中心化的区块链钱包-CSDN博客区块链中的加密与安全性:Java开发者的指南-CSDN博客。
2025-04-09 15:25:55
997
原创 如何使用Java构建一个去中心化的区块链钱包
去中心化钱包(也称为非托管钱包)是指用户完全控制自己的私钥和数字资产的区块链钱包。与传统的钱包不同,去中心化钱包不依赖于任何中心化的服务器或机构来管理用户的资产,所有的交易和操作都由用户自己签署并执行。私钥(Private Key):用于签署交易,证明资产的所有权。私钥必须保密,一旦泄露,资产将面临风险。公钥(Public Key):与私钥一一对应,可以公开用于接收数字货币。钱包地址(Wallet Address):公钥经过一定的转换后生成的钱包地址,用于接收数字货币。
2025-04-09 15:22:31
558
原创 区块链中的加密与安全性:Java开发者的指南
区块链技术作为一项去中心化的创新,正在重塑着各行各业的业务模式。在区块链的核心中,加密算法和安全性是确保交易和数据隐私性、完整性以及验证的重要手段。无论是比特币、以太坊还是其他区块链系统,加密技术都扮演着至关重要的角色。本篇文章将深入探讨区块链中常用的加密算法和数字签名技术,并展示如何在Java中实现这些技术。
2025-04-09 15:19:46
756
原创 从零开始:如何用Java实现智能合约和Web3J库
智能合约是运行在区块链上的一种程序,其核心功能是自动化地执行合同条款。智能合约可以无须中介,在确保协议得到遵守的同时,大大提高交易效率。以太坊是目前最为主流的智能合约平台之一,它提供了一个去中心化的环境,允许用户在平台上创建和执行智能合约。
2025-04-09 15:14:18
1032
原创 区块链共识机制解析:PoW、PoS与Java实现
共识机制(Consensus Mechanism)是区块链网络中各节点就交易有效性达成一致的协议。由于区块链的去中心化特性,所有节点在没有中央管理者的情况下,需要通过某种方式确保他们在同一时间对区块链的数据进行一致的验证。工作量证明(Proof of Work,PoW)权益证明(Proof of Stake,PoS)每种共识机制都有其独特的特点和适用场景。PoW(Proof of Work)是一种基于计算力的共识机制,最早应用于比特币。
2025-04-09 15:10:37
747
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人