
Java(Advanced Message Queue)
文章平均质量分 87
Java是一种广泛使用的编程语言,具有简单、面向对象、可移植性、安全性等特点。Java语言广泛应用于Web开发、移动开发、游戏开发等领域。
Bol5261
Begin here!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Apache Falcon(已归档至 Apache Attic)是一个为 Hadoop 环境设计的数据处理和管理解决方案
Apache Falcon 是一个曾经由 Apache 软件基金会管理的开源项目,目前已被移至 **Apache Attic**(Apache attic 是 Apache 基金会用于管理已停止活跃开发的项目的机构,类似“存档区”)。该项目最初定位为**数据治理和生命周期管理工具**,主要面向大数据生态系统,旨在简化数据处理流程中的调度、协调和管理工作。原创 2020-05-02 18:41:13 · 360 阅读 · 0 评论 -
HBase中存在Reverse Scan API相关功能,HBASE-4811实现了一个API来对表或表内的一个范围进行反向扫描,此功能在HBase 0.98及更高版本中可用
在 DynamoDB 和 Bigtable 的比较中,使用 `VideoComment#reverse-timestamp` 作为排序键可将评论按倒序排序,以便更快地访问最新评论(例如,在分区键为视频 ID 的情况下) 。Bigtable 的时间戳会自动按时间倒序显示评论,无需手动计算反向时间戳作为排序键,简化了架构 。此外,Bigtable 的列按字典顺序排序,可通过重命名列优化读取请求,以便在单次读取中快速扫描范围(从视频属性到前 N 条最新评论) 。原创 2020-04-29 17:48:25 · 393 阅读 · 0 评论 -
Spring Batch 是 Spring 框架生态中专注于批处理任务的子项目,主要用于处理大量数据的批量操作(如数据迁移、ETL 流程、定期报表生成等)
Spring Batch 是 Spring 框架生态中专注于批处理任务的子项目,主要用于处理大量数据的批量操作(如数据迁移、ETL 流程、定期报表生成等)。2.1.9.RELEASE 是 Spring Batch 2.1.x 系列的一个维护版本,发布于 2012 年左右(根据 Spring 版本发布周期推测),主要针对 2.1.x 分支进行 bug 修复和兼容性优化,而非重大功能迭代。原创 2020-05-17 18:37:45 · 165 阅读 · 0 评论 -
随着物联网(IoT)、大数据和人工智能技术的不断发展,时序数据的规模和应用场景将持续增长
在分布式存储系统(HBase、Cassandra、TiKV、Bigtable、YugaByteDB 等)中,行键(Row Key)或主键的设计对性能与可扩展性具有决定性作用。当业务场景天然产生“单调递增”键——典型如时间戳(timestamp)、自增 ID、Snowflake ID、ULID 等——便会出现“Monotonically Increasing Row Key”现象。本报告从原理、影响、量化指标、解决方案四个维度进行系统性分析,并给出可直接落地的设计清单。原创 2020-04-29 17:48:45 · 295 阅读 · 0 评论 -
在2013年,软件开发领域正处于快速变革期,随着云计算、大数据等新兴技术兴起,应用程序的架构和开发方式面临诸多挑战与机遇。
3. **解答开发者疑问**:设置问答环节,针对开发者在使用Spring过程中遇到的各种问题,以及对新特性的困惑进行解答,加强与开发者社区的互动与交流,收集反馈意见以进一步优化Spring框架。原创 2020-05-17 18:10:50 · 166 阅读 · 0 评论 -
MySQL 是全球最受欢迎的开源数据库,在 DB-Engines 流行度排名中,连续多年位列全球第二(仅次于 Oracle)
在信息技术迅猛发展的当下,数据已成为企业和组织的核心资产之一。数据库作为存储、管理和处理数据的关键工具,其重要性不言而喻。MySQL,作为世界上最流行的开源数据库,在众多数据库产品中脱颖而出,广泛应用于各种规模的企业和多样化的应用场景。从个人开发者的小型项目到大型互联网公司的核心业务系统,MySQL都发挥着不可或缺的作用。深入了解MySQL的发展历程、技术特点、市场地位、应用场景、面临的挑战以及未来趋势,对于充分发挥其优势、提升数据管理效率、推动业务发展具有重要意义。原创 2020-03-23 11:27:41 · 239 阅读 · 0 评论 -
ZooKeeper的邮件列表是其社区重要的交流平台,对于用户和开发者来说是获取信息、交流经验和参与项目开发的重要渠道
ZooKeeper的邮件列表是其社区重要的交流平台,对于用户和开发者来说是获取信息、交流经验和参与项目开发的重要渠道。以下是对ZooKeeper邮件列表的分析报告:原创 2020-04-28 20:16:26 · 201 阅读 · 0 评论 -
社区展示 Spring 生态在 2013 年前后的最新动向,帮助开发者“重新认识”Spring——因此标题以问句形式出现
春天来临,气候发生显著变化。地球自转轴的角度处于特定位置,使得气温逐渐回升,从寒冷的冬季过渡到宜人的温度。以北京为例,3月中旬后,平均气温从冬季的零下逐渐上升至10℃左右 ,人们不再需要厚重的冬衣来保暖。同时,春天白昼变长黑夜变短,提供了更多的光照时间。这是由于地球与太阳的相对位置改变,使得阳光照射时长增加。例如在上海,3月到4月期间,日落时间从傍晚5点半左右逐渐推迟到6点半左右,为人们的日常活动提供了更充裕的时间。原创 2020-05-17 18:14:57 · 154 阅读 · 0 评论 -
在当今复杂的企业应用架构中,批处理和系统集成是两个至关重要的环节
SpringOne2GX 2013 会议中,Gunnar Hillert 和 Michael Minella 的演讲《Integrating Spring Batch and Spring Integration》探讨了如何高效结合使用 Spring Batch 和 Spring Integration,以满足以下需求:Spring Batch 用户需与其他系统交互、调度批量作业执行和监控作业执行;Spring Integration 用户则需处理大数据(如传统批量文件处理或 Apache Hadoop 作原创 2020-05-17 18:06:04 · 180 阅读 · 0 评论 -
Spring XD作为一个用于数据摄取、实时分析、批处理和数据导出的统一、分布式且可扩展的系统,在大数据处理领域发挥着重要作用
Spring XD 是一个统一、分布式、可扩展的运行时,用于实时分析、批处理、数据注入与导出。1.0.0.M5 继续强化“一站式大数据管道”理念,提供了更易用、更丰富的大数据接入/处理/落地能力。原创 2020-05-17 18:05:47 · 208 阅读 · 0 评论 -
Spring Data项目的核心组件之一便是仓库抽象层,它构建起了一个连贯且基于接口的编程模型,极大程度上降低了数据访问层的实现难度
Spring Data项目的核心组件之一便是仓库抽象层,它构建起了一个连贯且基于接口的编程模型,极大程度上降低了数据访问层的实现难度。这种基于接口的模式,使得开发者无需过多关注底层复杂的数据访问逻辑,仅通过定义接口方法,就能轻松实现数据的增删改查等操作。例如,在一个简单的用户管理系统中,开发者只需定义一个`UserRepository`接口,通过继承Spring Data提供的相关接口,就能快速拥有对用户数据进行基本操作的能力,而无需编写大量重复的SQL语句或其他数据访问代码。原创 2020-05-17 18:29:23 · 192 阅读 · 0 评论 -
在信息技术飞速发展的当下,软件开发领域持续演进,新的框架、平台和最佳实践不断涌现
本次活动为开发者们搭建了一座宝贵的交流桥梁,使得他们能够齐聚一堂,分享各自在Spring开发和Cloud Foundry应用中的宝贵经验。这不仅有助于开发者个人技能的提升,更对整个行业的技术进步产生积极的推动作用。通过活动中的深入探讨和思想碰撞,能够促进技术的创新与融合,为软件开发领域注入新的活力,进而推动印度乃至全球信息技术产业的持续发展。原创 2020-05-17 18:10:17 · 246 阅读 · 0 评论 -
订单是电子商务、在线交易等系统中的核心业务概念,用于记录用户购买商品或服务的详细信息
订单是电子商务、在线交易等系统中的核心业务概念,用于记录用户购买商品或服务的详细信息。订单系统作为连接用户、商品、支付和物流的枢纽,其设计质量直接影响整个业务流程的效率和用户体验。原创 2020-04-29 17:46:29 · 261 阅读 · 0 评论 -
Hadoop 的动态配置是指在不重启集群服务的情况下,修改和生效配置参数的机制
- 服务中断:重启过程中,数据处理任务可能失败或延迟- 运维成本高:大规模集群重启耗时久、操作复杂- 灵活性差:无法根据实时负载动态调整参数(如资源分配、超时时间等)原创 2020-04-28 22:38:53 · 889 阅读 · 0 评论 -
Spring Data Moore-SR6 是 Spring Data 项目的一个服务发布版本(Service Release 6),基于 Moore 主版本迭代而来
Spring Data Moore-SR6 是 Spring 生态中重要的数据访问框架服务版本,提供对多种数据库的统一支持。该版本主要优化性能、修复缺陷并增强模块兼容性,重点改进包括:JPA批量操作效率提升20-30%、MongoDB聚合查询优化、Redis集群事件可靠性修复等。作为Moore系列的第六个服务版本,它保持API兼容性,要求Spring Framework 5.2.x和JDK8+环境,适用于多数据源的企业级应用开发。虽然已结束维护,但该版本仍为Spring Boot 2.2项目提供稳定的数据访原创 2020-04-16 19:09:43 · 189 阅读 · 0 评论 -
Device I/O Namespace 是一种用于组织和管理设备输入/输出操作的机制
- **定义**:Device I/O Namespace 是一种用于管理和组织计算机系统中输入/输出 (I/O) 设备的逻辑结构,它为设备提供了统一的命名和访问方式,使得操作系统和应用程序能够以一致的方式与不同类型的设备进行交互。原创 2020-04-29 18:06:45 · 154 阅读 · 0 评论 -
`springboot-shiro-spring-boot-starter-jdbc` 是一个整合了 Spring Boot、Apache Shiro 和 JDBC 的项目模板
`springboot-shiro-spring-boot-starter-jdbc` 是一个整合了 Spring Boot、Apache Shiro 和 JDBC 的项目模板,主要用于简化基于 Spring Boot 的应用程序中 Shiro 的安全认证和授权功能的实现,并通过 JDBC 连接数据库。以下是对其的简述:原创 2020-05-22 15:51:01 · 402 阅读 · 0 评论 -
“Modified Permission Model”(修改后的权限模型)可能是一个较为通用的概念,具体含义和实现方式可能因应用场景和系统设计而异
Modified Permission Model(改进的权限模型)并非单一固定的标准模型,而是在传统权限控制模型(如自主访问控制(DAC)、强制访问控制(MAC)、基于角色的访问控制(RBAC)等)基础上,针对特定场景需求进行优化或融合的权限管理框架。其核心目标是解决传统模型在灵活性、可扩展性、安全性等方面的局限性,常见于复杂系统(如云计算、分布式系统、微服务架构)或高安全需求场景(如金融、政务系统)。原创 2020-04-29 18:06:51 · 135 阅读 · 0 评论 -
“General Purpose Input/Output”(通用输入输出接口,简称GPIO)是一种常见的硬件接口,广泛应用于微控制器、嵌入式系统和计算机等设备中
GPIO(General Purpose Input/Output)是微控制器(MCU)、嵌入式系统中最基础的外设接口,用于实现与外部设备的数字信号交互。其核心特点是“通用性”,即不依赖特定协议(如I2C、SPI等),可通过软件配置为输入或输出模式,灵活适配各类场景。原创 2020-04-29 18:16:54 · 604 阅读 · 0 评论 -
“Oracle Adds New Exhibit to Java Technology Museum”直译为“甲骨文公司为Java技术博物馆增添新展品”
还是MacOS等不同操作系统上,只要安装了相应的JVM,Java程序都能无缝运行,极大提高了代码的可复用性和开发效率。- **助力企业级开发**:Java企业版(Java EE)逐渐转型为开源的Jakarta EE,继承了Java EE的丰富特性,如企业级的持久化、事务管理、Web服务等,还引入了对微服务、容器化和云原生技术的更好支持,巩固了Java在企业级应用开发的领先地位。- **增强安全性**:Java内置了强大的安全管理机制,能够有效防止恶意代码的入侵和攻击。甲骨文在后续版本中不断加强安全支持,原创 2020-05-16 00:58:44 · 162 阅读 · 0 评论 -
`java.time.format` 是 Java 8 及以后版本中用于处理日期和时间格式化的重要包,它提供了一套全面且灵活的 API 来解析和格式化日期时间对象
**线程安全**:`DateTimeFormatter` 是不可变且线程安全的,可以全局共享。2. **异常处理**:解析时可能抛出 `DateTimeParseException`,需进行异常处理。3. **本地化**:通过 `DateTimeFormatter.ofLocalizedDateTime()` 可以根据系统Locale生成格式化器。原创 2020-05-12 20:56:52 · 421 阅读 · 0 评论 -
在JavaScript中,构造函数是一种特殊的函数,用于创建具有特定属性和方法的对象。自定义构造函数允许我们定义自己的对象类型
自定义构造函数是一种函数,它使用`new`关键字来创建对象实例。构造函数的第一个参数通常是`this`,它指向新创建的对象实例。通过在构造函数内部为`this`添加属性和方法,我们可以定义对象的结构和行为。原创 2020-04-17 20:01:59 · 171 阅读 · 1 评论 -
Java和JavaScript是两种完全不同的编程语言,它们在设计目标、用途、语法、运行环境等方面存在诸多区别
- **Java**:最初是为嵌入式设备和机顶盒设计的,后来逐渐发展成为一种通用的面向对象编程语言,主要用于构建大型企业级应用、桌面应用、移动应用(如Android应用)等。- **JavaScript**:最初是为了在网页中添加交互性而设计的脚本语言,主要用于网页的动态效果、表单验证、DOM操作等前端开发,现在也可以用于服务器端开发(如Node.js)。原创 2020-04-23 14:28:57 · 164 阅读 · 1 评论 -
RabbitMQ 运营商需要能够推理节点的内存使用情况,包括绝对值和相对值(“什么占用最多内存”)
"Reasoning About Memory Use RabbitMQ" 本质是**围绕 RabbitMQ 的内存管理机制展开系统性分析**,目标是通过理解其内存使用模式(如消息存储、元数据缓存、连接状态),定位性能瓶颈并实施优化,确保消息中间件的稳定性和高效性。这一过程需要结合 RabbitMQ 的架构特性、配置参数及实际业务场景,综合运用监控工具与调优策略。原创 2020-04-22 12:55:54 · 280 阅读 · 0 评论 -
Spring 与 Hibernate 集成适合追求开发效率、事务管理便捷性的项目,但需要开发者熟悉两者的特性以避免性能和配置陷阱
**创建Facebook开发者账户及应用**:访问Facebook开发者平台,使用Facebook个人账户登录并注册开发者账户,同意相关政策后创建应用,填写应用名称、联系邮箱等信息,创建完成后进入应用设置页面获取“App ID”和“App Secret”。- **添加依赖**:在项目的`pom.xml`文件中添加Spring Social Facebook的依赖:原创 2020-05-17 12:50:21 · 175 阅读 · 0 评论 -
以下是关于您提供的技术主题的简要分析与扩展信息,涵盖 **RESTful API 设计演进、云平台实践、Spring 框架生态整合、搜索技术、多环境开发、反应式编程** 等
深入 Elasticsearch(ES)的分布式搜索原理,涵盖索引设计、查询优化、集群管理及与 Spring Data Elasticsearch 的集成。 - 案例:使用 ES 构建实时搜索服务,解决日志分析、电商商品搜索等场景的高并发查询需求。原创 2020-05-17 18:25:39 · 189 阅读 · 0 评论 -
基于 **Spring 框架**的**流程管理框架**,专注于构建**交互式 Web 应用流程**,例如用户注册、订单处理、多步骤表单提交等需要状态管理和流程控制的场景
- **引入流程消息捆绑包**:可以在流程的工作目录中为需要支持的语言环境创建 messages.properties 文件。- **引入可配置的视图状态历史记录策略**:视图状态可以保留其历史记录以支持回溯,丢弃其历史记录以防止回溯,或使所有先前的历史记录无效以禁止在没有返回点之后进行回溯。原创 2020-05-16 00:56:55 · 230 阅读 · 0 评论 -
Tomcat JDBC Connection Pool 是一个功能强大、性能高效且易于配置的数据库连接池,它能够帮助 Java Web 应用程序更好地管理数据库连接
Tomcat JDBC Connection Pool 是一个高性能的数据库连接池,它是 Apache Tomcat 的一部分,但也可以独立使用。它旨在替代或作为 Apache Commons DBCP 的替代品。Tomcat JDBC Connection Pool 是一个成熟且广泛使用的数据库连接池解决方案,特别适合与 Tomcat 或 Spring Boot 集成使用。它提供了丰富的配置选项和高性能支持,但如果你需要更高级的特性(如 HikariCP 提供的),可能需要考虑其他选项。原创 2020-04-24 14:54:52 · 728 阅读 · 0 评论 -
`java.util.stream.Stream` 是 Java 8 引入的一个强大的功能,用于处理集合中的数据流
是 Java 8 引入的一个强大的功能,用于处理集合中的数据流。它提供了一种函数式的风格来操作序列化的元素集,并支持链式调用以实现复杂的逻辑。原创 2020-05-12 20:55:52 · 489 阅读 · 0 评论 -
以下是基于 KIE Server Java 客户端 API 的几个典型示例请求,这些请求展示了如何通过 Java 代码与 KIE Server 进行交互
以下是基于 KIE Server Java 客户端 API 的几个典型示例请求,这些请求展示了如何通过 Java 代码与 KIE Server 进行交互。以上所有示例均假设 KIE Server 已经安装并正在运行,并且客户端具有访问权限。此外,在实际应用中可能还需要处理更复杂的场景以及异常情况。以下是一个获取 KIE Server 信息的示例代码。此操作会返回有关当前运行中的 KIE Server 实例的信息。下面展示了一个简单的例子来说明如何完成这一任务。实例,它是与KIE服务器交互的入口。原创 2020-04-28 18:34:00 · 315 阅读 · 0 评论 -
Spring Boot 提供了一个名为 `spring-boot-configuration-processor` 的工具
主要负责生成一个名为的元数据文件。该文件包含了应用程序中定义的所有自定义配置键及其默认值、类型和其他属性的信息。通过这个文件,IDE 可以为用户提供更友好的开发体验,例如自动完成配置项以及提供实时错误检测。原创 2020-05-22 16:05:13 · 1009 阅读 · 0 评论 -
Guava 提供了一个轻量级的限流工具类 `RateLimiter`,适用于单机环境下的限流需求
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。package com.programb.example;import org.springframework.boot.SpringApplic原创 2020-05-20 22:36:23 · 998 阅读 · 0 评论 -
ConfigurationFiles 是一个开源项目,旨在简化配置管理任务
这些格式的选择为开发者提供了灵活性,允许他们在不同的应用场景中选择最适合的数据结构,比如 JSON 更适合于结构化的数据存储,而 YAML 则以其简洁性受到欢迎。通过集成到其他开源项目中,比如 Flask 的 Web 框架和 Ansible 的自动化工具,它可以增强这些项目的配置管理能力,减少了配置文件管理的复杂性。如果你有非标准的配置格式,比如JSON或其他自定义格式,可以考虑转换成YAML(因为values.yaml是YAML格式),或者编写Go Template函数来解析和操作这种非标准格式的数据。原创 2020-04-28 21:39:25 · 1018 阅读 · 0 评论 -
Security,即安全,是一个广泛的概念,它涵盖了保护个人、组织或国家免受各种威胁和风险的措施
值得注意的是,它只影响OGNL表达式的执行,然后OGNL将Java安全管理器恢复到以前的状态。若要解决此问题,请不要在层次结构中使用相同的方法名,只需将操作的方法从save()更改为saveAction(),并保留注释,以便允许通过/save.action请求调用此操作。Apache Struts 2包含内部安全管理器,它阻止对特定类和Java包的访问——这是一个OGNL范围的机制,意味着它影响框架的任何方面,即传入的参数、jsp中使用的表达式等。请阅读操作配置的严格方法调用部分中的更多内容。原创 2020-05-02 16:17:44 · 1157 阅读 · 0 评论 -
为了减少模板编译错误的发生频率,建议开发者启用Nunjucks的严格模式
另外,虽然第三个例子主要涉及Element UI组件库内的逻辑判断失误引发的运行期崩溃,这里也提供了一个良好的实践范例来规避潜在的风险:确保所有依赖外部状态更新视图结构的地方都要做好充分验证工作,防止访问不存在的对象属性从而触发JavaScript层面的类型错误。此情况可能是由于未闭合的大括号、额外的空间字符或是不匹配的引号所引起的。建议仔细检查位于第310行附近的代码片段,特别是任何自定义布局或插件引入的部分,确认所有的变量声明都已适当关闭。当发生编译失败的情况时,应仔细阅读终端输出的日志内容。原创 2020-04-18 20:00:39 · 1139 阅读 · 0 评论 -
在jBPM中,文档通常包含了对事件处理机制的详细说明
在jBPM中,文档通常包含了对事件处理机制的详细说明。:当流程实例开始时触发,常常用于启动一系列操作或流程定义。:流程完成时触发,可用于执行清理或通知操作。:位于流程图上的特定位置,如条件分支或循环之前/之后,可以用来做出决策或改变流程路径。要深入了解如何在jBPM中使用这些事件,建议查阅官方文档或者jbpm中文用户手册,那里会提供详细的配置示例和API指南,教你如何设置事件监听器以响应不同的流程事件。原创 2020-04-27 19:30:13 · 1181 阅读 · 0 评论 -
jBPM官方文档提供了详细的指南和技术文档,以帮助用户理解和使用jbPM
这是jBPM的核心部分,它允许用户利用jBPM Designer这样的工具来设计和创建流程模型,通过图形化界面定义流程的各个步骤、条件和工作流规则。原创 2020-04-27 19:30:49 · 1176 阅读 · 1 评论 -
Hibernate Validator 6.1.5.Final 和 6.0.20.Final 是两个版本的发布,主要关注点在于修复了CVE-2020-10693漏洞和其他一些小问题
CVE-2020-10693是关于由于解析器中的错误,如果应用程序未仔细转义用户输入(即,将$ {转义为\ $ {而不是\ $ \ {),则容易受到EL注入的攻击)。通过包含用户输入,最终将任意字符串传递给EL,并且这些任意字符串可能包含精心制作的内容,以公开敏感数据(例如,用户bean中存在密码哈希)或执行代码。通过调整EL配置,我们在Hibernate Validator中做了一些限制,但是毫无疑问,您会发现复杂的执行代码的方法。命令,即可启动与该项目关联的Maven版本,而不是全局安装的默认版本。原创 2020-05-19 01:15:22 · 1680 阅读 · 1 评论 -
ZooKeeper Administrator‘s Guide:A Guide to Deployment and Administration是一本关于ZooKeeper部署和管理的指南
它涵盖了部署系统的要求、支持的平台、所需的软件、集群设置、单服务器和开发人员设置,以及一些需要考虑的事项,如ZooKeeper的优点和局限性。总之,ZooKeeper管理员指南是一本全面而实用的参考书,对于需要部署和管理ZooKeeper的读者来说非常有价值。这包括如何识别和解决常见问题,如何设计和实施备份和恢复策略,以及如何利用ZooKeeper提供的各种工具进行故障排查。此外,该指南还提供了关于如何监控ZooKeeper的性能和可用性,以及如何处理故障转移和恢复的信息。原创 2020-04-28 20:17:32 · 1802 阅读 · 1 评论 -
`npm-adduser` 是 Node Package Manager (NPM) 的一个命令,用于设置 npm 登录信息
是 Node Package Manager (NPM) 中的一个重要命令,它允许开发者设置或更新他们的npm登录凭证,以便能够发布包到npm仓库。是 Node Package Manager (NPM) 的一个命令,用于设置 npm 登录信息,以便能够注册新包或者私有仓库访问权限。这将移除与你的用户名关联的凭证,但不会影响已经发布的包。执行这些命令前,确保你已经安装了 NPM 并且知道你的用户名和密码。通过这些命令,开发者可以轻松地管理和控制他们在npm上的身份和包的访问权限。参数指定已有的用户名。原创 2020-04-15 18:13:24 · 1939 阅读 · 0 评论