MyBatis技术内幕

MyBatis技术内幕 pdf epub mobi txt 电子书 下载 2025

徐郡明 著
图书标签:
  • MyBatis
  • 持久层框架
  • ORM
  • 数据库
  • Java
  • SQL
  • 映射器
  • 配置
  • 动态SQL
  • 缓存
  • 事务
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 电子工业出版社
ISBN:9787121317873
版次:1
商品编码:12125531
品牌:Broadview
包装:平装
开本:16开
出版时间:2017-06-01
用纸:胶版纸
页数:444
字数:532000
正文语种:中文

具体描述

编辑推荐

适读人群 :本书适合有Java基础,希望了解MyBatis设计原理和实现的读者

详细分析MyBatis 3.4源码,并融入了作者对MyBatis架构设计的理解,还介绍以插件方式扩展MyBatis的原理以及与Spring集成的原理,跟着作者一起去探究MyBatis 的技术内幕吧

内容简介

本书以MyBatis 3.4为基础,针对MyBatis的架构设计和实现细节进行了详细分析,其中穿插介绍了MyBatis源码中涉及的基础知识、设计模式以及笔者自己在实践中的思考。本书共4章,从MyBatis快速入门开始,逐步分析了MyBatis的整体架构以及核心概念,对MyBatis的基础支持层、核心处理层中各个模块的功能和实现细节进行了深入的剖析。除此之外,还分析了MyBatis插件的应用场景和实现原理,介绍了MyBatis与Spring集成开发的示例和原理,以及一些实践中的小技巧和小工具的使用方法。本书旨在为读者理解MyBatis的设计原理、阅读MyBatis源码、扩展MyBatis功能提供帮助和指导,让读者更加深入地了解MyBatis的运行原理、设计理念。希望本书能够帮助读者全面提升自身的技术能力,让读者在设计业务系统时,可以参考MyBatis的优秀设计,更好地应用MyBatis。

作者简介

徐郡明,武汉大学硕士,目前就职于航天科技集团旗下某研究所,主要负责政企云平台基础架构的设计和研发工作,关注多项Java开源技术的发展。

精彩书评

《MyBatis技术内幕》深入浅出地讲解了MyBatis的底层原理,清晰的写作思路、翔实的内容让我受益匪浅,这是一本优秀的进阶书籍。

——中量财富(北京)策略研发中心总经理 朱碧颖


MyBatis现在已经是Java企业级开发中的主流框架之一。《MyBatis技术内幕》全面地剖析了MyBatis的架构设计,同时作者也分享了很多实践经验,值得一读。

——小米科技高级研发工程师 逄志强


《MyBatis技术内幕》深入分析了MyBatis的设计思想,帮助读者了解MyBatis的运行原理,作者分析源码时思路清晰、讲解到位,是一本非常难得的好书。

——华为高级研发工程师 杨俊灵


《MyBatis技术内幕》展示了MyBatis框架的全景,其中特别喜欢作者将设计模式的讲解与MyBatis源码剖析相结合的写作方式,让我们不仅了解了设计模式的概念,还学习到了这些模式的*佳实践。

——搜狗高级开发工程师 李全才


我特别喜欢著名作家侯捷说过的一句话:“源码面前,了无秘密”。《MyBatis技术内幕》可以让读者深入透彻地理解MyBatis内部结构。对于Java程序员来说,是一本不可错过的佳作。

——微医集团Java高级研发工程师 曾君实


目录

第1章 MyBatis快速入门
1.1 ORM简介
1.2 常见持久化框架
1.3 MyBatis示例
1.4 MyBatis整体架构
1.4.1 基础支持层
1.4.2 核心处理层
1.4.3 接口层
1.5 本章小结
第2章 基础支持层
2.1 解析器模块
2.1.1 XPath简介
2.1.2 XPathParser
2.2 反射工具箱
2.2.1 Reflector&ReflectorFactory
2.2.2 TypeParameterResolver
2.2.3 ObjectFactory
2.2.4 Property工具集
2.2.5 MetaClass
2.2.6 ObjectWrapper
2.2.7 MetaObject
2.3 类型转换
2.3.1 TypeHandler
2.3.2 TypeHandlerRegistry
2.3.3 TypeAliasRegistry
2.4 日志模块
2.4.1 适配器模式
2.4.2 日志适配器
2.4.3 代理模式与JDK动态代理
2.4.4 JDBC调试
2.5 资源加载
2.5.1 类加载器简介
2.5.2 ClassLoaderWrapper
2.5.3 ResolverUtil
2.5.4 单例模式
2.5.5 VFS
2.6 DataSource
2.6.1 工厂方法模式
2.6.2 DataSourceFactory
2.6.3 UnpooledDataSource
2.6.4 PooledDataSource
2.7 Transaction
2.8 binding模块
2.8.1 MapperRegistry&MapperProxyFactory
2.8.2 MapperProxy
2.8.3 MapperMethod
2.9 缓存模块
2.9.1 装饰器模式
2.9.2 Cache接口及其实现
2.9.3 CacheKey
2.10 本章小结
第3章 核心处理层
3.1 MyBatis初始化
3.1.1 建造者模式
3.1.2 BaseBuilder
3.1.3 XMLConfigBuilder
3.1.4 XMLMapperBuilder
3.1.5 XMLStatementBuilder
3.1.6 绑定Mapper接口
3.1.7 处理incomplete*集合
3.2 SqlNode&SqlSource
3.2.1 组合模式
3.2.2 OGNL表达式简介
3.2.3 DynamicContext
3.2.4 SqlNode
3.2.5 SqlSourceBuilder
3.2.6 DynamicSqlSource
3.2.7 RawSqlSource
3.3 ResultSetHandler
3.3.1 handleResultSets()方法
3.3.2 ResultSetWrapper
3.3.3 简单映射
3.3.4 嵌套映射
3.3.5 嵌套查询&延迟加载
3.3.6 多结果集处理
3.3.7 游标
3.3.8 输出类型的参数
3.4 KeyGenerator
3.4.1 Jdbc3KeyGenerator
3.4.2 SelectkeyGenerator
3.5 StatementHandler
3.5.1 RoutingStatementHandler
3.5.2 BaseStatementHandler
3.5.3 ParameterHandler
3.5.4 SimpleStatementHandler
3.5.5 PreparedStatementHandler
3.6 Executor
3.6.1 模板方法模式
3.6.2 BaseExecutor
3.6.3 SimpleExecutor
3.6.4 ReuseExecutor
3.6.5 BatchExecutor
3.6.6 CachingExecutor
3.7 接口层
3.7.1 策略模式
3.7.2 SqlSession
3.7.3 DefaultSqlSessionFactory
3.7.4 SqlSessionManager
3.8 本章小结
第4章 高级主题
4.1 插件模块
4.1.1 责任链模式
4.1.2 Interceptor
4.1.3 应用场景分析
4.2 MyBatis与Spring集成
4.2.1 Spring基本概念
4.2.2 Spring MVC介绍
4.2.3 集成环境搭建
4.2.4 Mybatis-Spring剖析
4.3 拾遗
4.3.1 应用<sql>节点
4.3.2 OgnlUtils工具类
4.3.3 SQL语句生成器
4.3.4 动态SQL脚本插件
4.3.5 MyBatis-Generator逆向工程
4.4 本章小结

前言/序言

前  言



面向对象程序设计是企业级开发常用的设计方式,在实践中常用的编程语言大多都是面向对象的编程语言。而在实际生产环境中常用的数据库产品,如MySQL、Oracle等,都是关系型数据库。虽然NoSQL数据库在最近一段时间有飞速的发展,但是关系型数据库凭借多年的发展和技术积累,依然占据着市场的主导地位。

MyBatis作为一个优秀的Java持久化框架,可以帮助程序员完成ORM映射、查询缓存等常用功能。MyBatis以其高性能、易优化、易维护、可扩展等优点,受到越来越多的开发人员的青睐,也有越来越多的设计人员开始将MyBatis作为其首选的Java持久化框架。

MyBatis 的前身是Apache的一个开源项目—iBatis,2010年iBatis项目由Apache基金会迁移到了Google Code,并正式更名为MyBatis。2013年11月,MyBatis迁移到Github。目前,越来越多的互联网公司开始使用MyBatis,其中包括网易、搜狗、华为等,依赖MyBatis搭建的创业项目更是数不胜数。

MyBatis的亮点有很多,比如灵活的动态SQL语句、强大的ORM映射功能等,同时还提供了二级缓存等常用功能。MyBatis同时支持XML和注解两种配置方式,帮助程序员屏蔽了近乎所有的JDBC代码、参数设置、结果集处理等工作,极大地提升了开发效率。

MyBatis中有很多令人称赞的功能和优秀的设计,但至今还没有一本书籍深入剖析MyBatis的内部设计和实现细节,希望本书的出现可以填补此项空白。

本书以MyBatis 3.4为基础,针对MyBatis的架构设计和实现细节进行了详细分析,其中穿插介绍了MyBatis源码中涉及的基础知识、设计模式以及笔者自己在实践中的思考。除此之外,还分析了MyBatis插件的应用场景和实现原理,介绍了MyBatis与Spring集成开发的示例和原理,以及一些实践中的小技巧和小工具的使用。

如何阅读本书

由于篇幅限制,本书并没有详细介绍Java的基础知识,但为了便于读者理解MyBatis的设计思想和实现细节,笔者介绍了一些必需且重要的基础内容,例如涉及的多种设计模式。

本书共4章,它们互相之间的联系并不是很强,读者可以从头开始阅读,也可以选择自己感兴趣的章节进行学习。

第1章是MyBatis的快速入门,其中介绍了MyBatis出现的背景、与其他Java持久化框架的比较以及MyBatis的入门示例。之后介绍了MyBatis的整体架构,并简述了MyBatis中各个模块的基本功能。

第2章介绍MyBatis基础支持层中各个模块的功能,其中包括数据源模块、事务管理模块、缓存模块、binding模块、反射模块、类型转换模块、日志模块、资源加载模块和解析器模块。这些模块相对独立,读者在实践中如果遇到类似的需求,可以直接参考MyBatis的实现。

第3章介绍MyBatis核心处理层的主要功能,其中包括MyBatis初始化过程、动态SQL的解析过程、结果集的映射原理、SQL语句的参数绑定、KeyGenerator、StatementHandler以及Executor等组件的实现原理。同时,还介绍了MyBatis接口层的设计原理。

第4章介绍MyBatis插件的编写和配置方式、运行原理以及常见的应用场景,并分析了笔者在实践中使用的分页插件和分表插件的具体实现。之后,介绍了MyBatis与Spring集成开发的相关内容,搭建了Spring 4.3、MyBatis 3.4、Spring MVC的集成开发环境,剖析了MyBatis-Spring中核心组件的实现原理。最后介绍了一些在使用MyBatis时用到的小技巧和一些小工具的使用方法。

在本书中,除了介绍MyBatis的实现细节,还介绍了其中涉及的设计模式,可以帮助读者了解MyBatis源码背后的设计思想。

如果读者在阅读本书的过程中,发现任何不妥之处,请将您宝贵的意见和建议发送到邮箱xxxlxy2008@163.com,也欢迎读者朋友通过此邮箱与笔者进行交流。

致谢

感谢电子工业出版社博文视点的陈晓猛老师,是您的辛勤工作让本书的出版成为可能。同时还要感谢许多我不知道名字的幕后工作人员为本书付出的努力。

感谢朱碧颖、逄志强、杨俊灵、李全才、曾君实等朋友在百忙之中抽出时间对本书进行审阅和推荐。感谢米秀明、曾天宁、葛彬、杨杉、文静宇、刘浩、杨鹏林、路恒、藤少广等同事,帮助我解决工作中的困难。

这里特别感谢王鲁老师,在软件架构、设计模式等方面对我的指导。

感谢冯玉玉、李成伟,是你们让写作的过程变得妙趣横生,是你们让我更加积极、自信,也是你们的鼓励让我完成了本书的写作。

最后,特别感谢我的母亲大人,谢谢您默默为我做出的牺牲和付出,您是我永远的女神。


徐郡明



《架构思维:精通系统设计与演进》 内容简介 在瞬息万变的数字时代,软件系统的复杂度与日俱增,对系统设计和演进能力的要求也愈发严苛。从最初的单体应用到如今微服务、分布式系统的盛行,架构的演进是技术发展的必然趋势,更是企业核心竞争力的体现。《架构思维:精通系统设计与演进》并非一本单纯的技术手册,而是一本带领读者深入理解架构设计核心理念、掌握系统构建与演进方法论的指南。它旨在培养一种“架构思维”,让开发者、架构师乃至技术领导者能够站在全局视角,审视系统设计中的挑战,并提出更优的解决方案。 本书的核心在于“思维”而非“工具”。我们不局限于任何具体的框架、语言或技术栈,而是专注于那些普适性的设计原则、模式和方法。通过对一系列真实世界中的案例进行深入剖析,本书将引导读者理解不同架构风格的优劣,掌握在特定场景下选择最适合技术方案的决策过程。 第一部分:架构的基石——理解系统设计的本质 在着手设计任何系统之前,深刻理解“为什么”和“是什么”至关重要。本部分将从最根本的层面出发,拆解软件架构的本质: 系统的生命周期与演进的必然性: 任何软件系统都不是一成不变的。我们将探讨系统从诞生、发展、成熟直至衰退的完整生命周期,以及架构在不同阶段面临的挑战。理解演进的必然性,才能在设计之初就为未来的变化埋下伏笔。 需求与约束的辩证关系: 架构设计是需求驱动的,但同时也要受到技术、成本、时间、团队能力等多重约束的影响。本部分将深入分析如何识别、理解和平衡这些复杂的需求与约束,避免设计出“空中楼阁”式的系统。 质量属性(Non-functional Requirements)的重要性: 除了功能性需求,性能、可用性、可扩展性、可维护性、安全性、可测试性等非功能性需求往往是决定一个系统能否成功的关键。我们将详细阐述这些质量属性的含义、衡量标准以及如何在架构设计中加以保障。例如,对于性能,我们会探讨从硬件层面到软件设计层面的各种优化策略;对于可用性,则会深入分析冗余、容错、故障转移等机制。 架构决策的思维模式: 架构设计本质上是一系列决策的集合。本书将强调做出明智架构决策的思维模式,包括权衡取舍、避免过度设计、识别技术债务等。我们将引入“四色围棋”的哲学,强调在不确定性中做出最佳选择。 第二部分:经典与现代——架构风格与模式解析 本部分将深入探讨各种主流的架构风格和设计模式,并结合实际应用场景进行分析,帮助读者构建丰富的设计工具箱。 单体应用: 即使在微服务盛行的今天,单体应用依然是许多小型项目和初创企业的首选。我们将分析单体架构的优缺点,以及在设计和重构单体应用时需要注意的关键点,如模块化、清晰的边界划分等。 SOA (面向服务的架构) 与微服务架构: SOA 是分布式架构的早期探索,而微服务则是其更精细化的演进。本部分将详细对比 SOA 与微服务的异同,深入解析微服务的核心原则(如独立部署、自治、技术多样性),并探讨服务划分的最佳实践、服务间通信、API 网关、服务注册与发现等关键技术点。 事件驱动架构: 在需要高吞吐量、低延迟和强解耦的场景下,事件驱动架构展现出强大的生命力。我们将介绍发布/订阅模式、消息队列(如 Kafka, RabbitMQ)的应用,以及如何设计健壮的事件处理流程,确保数据的一致性和系统的可靠性。 CQRS (命令查询职责分离) 与领域驱动设计 (DDD): CQRS 通过将读写操作进行分离,能够显著提升系统的性能和可扩展性。DDD 则为复杂业务逻辑的设计提供了一套行之有效的方法论。本部分将探讨 CQRS 如何与 DDD 相辅相成,以及如何构建清晰的领域模型,实现业务与技术的深度融合。 其他重要架构模式: 此外,我们还将触及管道-过滤器模式、 MVC/MVVM 等,理解它们在不同层次上的应用价值。 第三部分:系统设计实践——从概念到落地 理论的掌握最终需要转化为实践。本部分将聚焦于系统设计的具体实践环节,提供一套系统化的方法论。 需求分析与用例建模: 如何从模糊的需求中提炼出清晰的、可落地的架构设计?我们将介绍用例图、活动图等建模工具,以及如何进行深入的需求访谈和分析,为架构设计奠定坚实基础。 系统接口设计: 清晰、规范的接口设计是系统之间良好协作的关键。本部分将深入探讨 RESTful API 设计原则、gRPC 的应用、契约测试等,确保接口的健壮性和易用性。 数据模型设计: 数据是系统的核心。我们将讨论关系型数据库与 NoSQL 数据库的选择,关系模式设计、范式理论,以及如何进行 NoSQL 数据建模,包括文档型、键值型、列族型和图数据库等。同时,也会涉及数据一致性、事务管理等复杂问题。 分布式系统设计核心挑战: 分布式系统带来了更高的可扩展性和可用性,但也引入了新的挑战。本部分将深入探讨 CAP 定理、一致性模型(强一致性、最终一致性)、分布式事务(两阶段提交、三阶段提交、Paxos, Raft)、分布式锁、分布式限流、熔断降级等关键概念及其解决方案。 可观察性与监控: 一个不可观测的系统就是一个“黑箱”。我们将重点介绍日志、度量、追踪(Metrics, Logging, Tracing)在系统运行中的重要性,以及如何设计和实现一套有效的可观察性系统,以便快速定位和解决问题。 部署与运维考量: 架构设计并非空中楼阁,必须考虑最终的部署和运维。本部分将探讨容器化技术(Docker, Kubernetes)对架构的影响,持续集成/持续部署(CI/CD)流程的构建,以及如何设计易于部署、监控和维护的系统。 第四部分:架构的演进与持续优化 技术是不断发展的,系统也需要不断演进以适应新的业务需求和技术趋势。 识别和管理技术债务: 技术债务是系统演进过程中不可避免的副产品。本部分将教会读者如何识别技术债务,评估其影响,并制定有效的技术债务偿还策略。 重构与迁移策略: 当现有架构无法满足需求时,如何进行有效的重构和迁移?我们将探讨渐进式重构、绞杀者模式等,以最小化风险的方式实现系统的现代化。 微服务拆分与演进: 如何从单体应用逐步走向微服务?如何随着业务的发展调整微服务边界?本部分将提供实用的指导。 拥抱新兴技术: Serverless、Service Mesh、GraphQL 等新兴技术正在改变着系统设计的格局。我们将探讨这些技术如何为架构设计带来新的可能性,以及如何在合适的场景下应用它们。 团队协作与沟通: 架构设计并非一人之事。有效的团队协作和清晰的沟通是架构成功的关键。本部分将强调架构师的角色、沟通的艺术以及如何建立一个健康的架构文化。 《架构思维:精通系统设计与演进》是一本为那些渴望构建健壮、可扩展、易于维护的现代软件系统的开发者和架构师量身打造的著作。它不提供一套放之四海而皆准的“银弹”,而是赋能读者掌握一种通用的、可迁移的设计思维,在不断变化的技术浪潮中,引领系统走向成功。通过学习本书,您将能够更自信地面对复杂的系统设计挑战,做出更明智的技术决策,并推动您的项目和团队走向卓越。

用户评价

评分

我对这本书的整体风格和叙事方式感到非常惊喜。作者并没有采用枯燥乏味的理论堆砌,而是通过大量的图示和生动的比喻,将复杂的 MyBatis 概念具象化。例如,在讲解 MyBatis 的 XML 映射和注解配置时,作者使用了“数据流水线”的比喻,形象地展示了 SQL 语句是如何被解析、执行,最终映射到 Java 对象的过程。这种“化繁为简”的处理方式,极大地降低了阅读门槛,让即便是初次接触 MyBatis 的开发者,也能快速抓住核心要点。我尤其欣赏的是,书中对 MyBatis 内部工作流程的拆解,比如它如何处理参数绑定、结果集映射,以及缓存机制的实现,都配有详细的流程图和源码片段分析。这让我感觉自己不仅仅是在“看”书,而是在“学” MyBatis 的“动作”,每一步都清晰可见,便于理解和记忆。这种深入浅出的讲解,对于我这种需要系统性掌握 MyBatis 的读者来说,无疑是极大的帮助。

评分

这本书的包装设计相当有吸引力,封面上“MyBatis技术内幕”这几个字的处理颇具匠心,字体大小和颜色搭配得当,整体给人一种专业而又不失深度的感觉。翻开书页,纸张的质感也很好,厚实且不易反光,长时间阅读也不会感到疲劳。我特别留意了排版,字体大小适中,行间距也恰到好处,即使是对技术书籍阅读经验不那么丰富的读者,也能轻松上手。目录的结构清晰明了,每一章的标题都直观地概括了其内容,让我在浏览时能够快速找到自己感兴趣或需要重点关注的部分。我对于其中关于Spring和MyBatis整合的章节尤其期待,因为在实际工作中,这部分往往是开发者遇到的难点之一。书中案例代码的呈现方式也值得称赞,清晰的代码块和适当的注释,使得理解起来更加便捷。总而言之,从装帧到排版,这本书都体现了出版方的用心,为我接下来的阅读之旅打下了良好的基础,让我对书中即将展开的技术内容充满了期待。

评分

本书在内容组织上,体现了一种循序渐进的学习路径,这让我感到非常舒心。它并非一开始就深入探讨那些晦涩难懂的高级特性,而是从 MyBatis 的基础概念入手,逐步引导读者进入更深层次的技术领域。我注意到,在介绍 MyBatis 的基本使用方法之后,作者并没有立刻跳到复杂的动态 SQL 编写,而是先详细讲解了 MyBatis 的配置文件和核心组件,如 `SqlSessionFactory` 和 `SqlSession` 的作用。这让我能够先稳固地掌握 MyBatis 的“骨架”,再来学习如何运用它的“血肉”。书中对 mapper 接口和 XML 映射文件之间的关联性分析得相当透彻,让我明白了为什么 MyBatis 能够如此高效地桥接 SQL 和 Java 代码。我对后续章节中关于 MyBatis 性能调优和二次开发的内容充满期待,相信凭借本书扎实的基础讲解,我将能够更好地理解和掌握这些进阶技巧。

评分

在深入了解 MyBatis 的具体实现细节之前,我先仔细研究了这本书的引言部分。作者在引言中,并没有直接抛出技术术语,而是以一种非常平易近人的方式,阐述了 MyBatis 在 Java 持久化开发领域的重要性和发展历程。他引用了几个实际的开发场景,生动地描绘了在没有 MyBatis 之前,开发者们所面临的挑战,例如繁琐的 JDBC 代码编写、SQL 注入的风险以及不同数据库之间的兼容性问题。随后,他巧妙地引出了 MyBatis 的出现,强调了它在简化开发、提高效率以及增强代码可读性方面的优势。这让我对 MyBatis 的产生背景有了更深刻的认识,也更加理解了作者在书中深入剖析其“技术内幕”的必要性和价值。我对书中对 MyBatis 核心设计理念的解读部分尤为感兴趣,希望能够从中了解到它为何能成为如此受欢迎的持久化框架,以及它与其他 ORM 框架相比的独特之处。

评分

在阅读这本书的过程中,我深刻体会到作者在细节上的严谨和对技术的敬畏。他不仅仅是介绍 MyBatis 的功能,更重要的是,他深入到 MyBatis 的“幕后”,揭示了其背后隐藏的设计哲学和实现原理。例如,在讲解 MyBatis 的拦截器机制时,作者并没有简单地罗列 API,而是从 Aspect-Oriented Programming (AOP) 的思想出发,阐述了 MyBatis 为什么选择这种方式来实现对 SQL 执行过程的干预,以及这种方式的优势和局限性。他对 MyBatis 缓存的剖析也格外细致,从一级缓存到二级缓存,再到缓存的失效策略,都给出了非常详尽的解释,并结合实际场景分析了如何利用缓存来提升应用性能。这种刨根问底的研究态度,让我对 MyBatis 的理解不再停留在表面,而是上升到了对整个框架的深刻认知,也让我对自己未来的技术学习有了新的思考方向。

评分

mybatis技术内幕讲解源码深入技术内幕。

评分

不错啊,正在学。。。。

评分

书本质量很好,送过来时包装是带气泡的袋子,把书保护的很好

评分

mybatis算是现在流行框架,虽然有很多争论,但他的设计还是值得一学

评分

Good .……

评分

很不错 还没开始看

评分

学习了里面关键技术,学着自己写插件。

评分

300-200入手的 , 比之年初 优惠没那么大了。且 例外例外!!! 好多热门书都被例外了。

评分

还不错呀,哇哈哈,店主也给力!

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有