- Dubbo(26)Dubbo的配置方式有哪些?
辞暮尔尔-烟火年年
微服务dubbo
Dubbo支持多种配置方式,包括XML配置、注解配置以及基于SpringBoot的配置方式。每种配置方式都有其独特的优势和使用场景。下面详细介绍这三种配置方式,并结合具体代码示例进行说明。1.XML配置XML配置是最传统的配置方式,通过Spring的配置文件来描述Dubbo的各类配置。示例代码pom.xmlorg.apache.dubbodubbo-spring-boot-starter2.7.8
- HTTP响应头字段深度解析(一)
网络小白不怕黑
网络协议分析网络协议
HTTP/1.1200OKDate:Sun,30Mar202511:43:50GMTServer:Apache/2.4.46(Win32)OpenSSL/1.1.1gmod_fcgid/2.3.9aX-Powered-By:PHP/5.4.45Product:Z-BlogPHP1.6.6ValyriaSet-Cookie:ZDEDebuggerPresent=php,phtml,php3;path
- Web应用的负载均衡、集群、高可用(HA)解决方案整理总结
一杯甜酒
架构设计
一、涉及到的几个组件1.1、apache——它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安全Socket层(SSL)等等,目前互联网主要使用它做静态资源服务器,也可以做代理服务器转发请求(如:图片链等),结合tomcat等servlet容器处理jsp。1.2、ngnix——俄罗斯人开发的一个高性能的H
- 探索数据流处理的利器:Pyleus
宋韵庚
探索数据流处理的利器:PyleuspyleusPyleusisaPythonframeworkfordevelopingandlaunchingStormtopologies.项目地址:https://gitcode.com/gh_mirrors/py/pyleus项目介绍Pyleus,一个基于Python2.6以上的框架,专为构建和启动ApacheStorm拓扑而设计。它以Pythonic的方式
- Streamparse:Python实时数据流处理的利器
黎杉娜Torrent
Streamparse:Python实时数据流处理的利器streamparseRunPythoninApacheStormtopologies.PythonicAPI,CLItooling,andatopologyDSL.项目地址:https://gitcode.com/gh_mirrors/st/streamparse1、项目介绍Streamparse是一个开源项目,它允许你通过ApacheSt
- 探索大数据处理的利器:Trident实战教程
纪亚钧
探索大数据处理的利器:Trident实战教程trident-tutorialApracticalStormTridenttutorial项目地址:https://gitcode.com/gh_mirrors/tr/trident-tutorial在大数据的浩瀚海洋中,ApacheStorm以其强大的实时计算能力独树一帜。而Trident作为Storm中的高级API,更是简化了复杂数据流处理的难题。
- 实时数据流处理利器:Apache Storm 在大数据中的应用
Echo_Wish
大数据高阶实战秘籍大数据apachestorm
实时数据流处理利器:ApacheStorm在大数据中的应用引言在如今的数据驱动时代,企业和开发者们面临的一个核心挑战是如何高效处理实时数据流。传统的批处理框架(如Hadoop)在面对海量数据时表现优秀,但其高延迟的缺点使其难以满足实时场景的需求。这时,ApacheStorm作为一个低延迟、高吞吐、分布式的流式处理框架,成为了实时数据分析、日志监控、欺诈检测等场景的理想选择。今天,我们就来深入探讨A
- Tomcat
jiangrenbao
java
Web应用服务器,也是一个Servlet/JSP容器。Tomcat作为Servlet容器,负责处理客户的.jsp动态页面的请求,把请求传送给Servlet,并将Servlet的响应传送回给客户。Linux中启动apache-tomcat-8.5.61.tar.gztar-zxvfapache-tomcat-8.5.57.tar.gzmvapache-tomcat-8.5.57/usr/local/
- tomcat提高图片服务器性能,Tomcat配置详解与性能优化方案
李子骅 luin
tomcat提高图片服务器性能
元素:为特定的Service处理所有的请示。每个Service只能包含一个Engine元素,它负责接收和处理此Service所有的连接器收到的请求,向连接发回响应,并最终显示在客户端。至少有一个元素,必须至少有一个属性的名字与defaultHost指定的名字相匹配。属性:className:实现org.apache.catalina.Engine接口,默认实现类为org.apache.catali
- Tomcat高效部署与性能优化
德乐懿
linux后端tomcat性能优化java
Tomcat高效部署与性能优化一、引言ApacheTomcat是一个广泛使用的开源JavaWeb应用服务器,它轻量级、易扩展,并支持Servlet和JSP规范。然而,随着业务的发展和用户数量的增长,Tomcat的性能和稳定性变得至关重要。本文将介绍如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应。二、Tomcat高效部署1.环境准备在部署Tomcat之前,需要确保服务器
- RocketMQ 集群架构与部署实践(一)
计算机毕设定制辅导-无忧学长
rocketmq架构
RocketMQ初印象在当今的分布式系统架构中,消息队列作为重要的中间件,承担着数据传输、系统解耦、异步处理等关键职责。RocketMQ作为一款高性能、高可靠的分布式消息队列,由阿里巴巴开源并捐赠给Apache基金会,目前已成为Apache顶级项目,在众多互联网公司和企业级项目中得到了广泛应用。它具有低延迟、高吞吐量、高可用性、分布式事务支持等特性,能有效应对大规模数据的实时处理和高并发场景,为分
- Mybatis日志模块--适配器模式
为了妹子而奋斗
Mybatis学习适配器模式日志模块Mybatis
Mybatis日志模块采用了适配器模式,在JAVA开发中,常用的日志框架有Log4j、Log4j2、java.util.logging、slf4j等,这些工具对外的接口不尽相同,为了统一这些工具的接口,Mybatis定义了一套统一的日志接口供上层使用。publicinterfaceLog{voiddebug(Strings);...}importorg.apache.ibatis.logging.
- [报错]java.lang.ClassCastException
weixin_30782331
java
Causedby:java.lang.ClassCastException:org.apache.xml.dtm.ref.DTMManagerDefaultcannotbecasttoorg.apache.xml.dtm.DTMManagerErrorwhileaddingthemapper'interfacecom.a.b.c'toconfiguration.原因:org.apache.xala
- Kokoro 开源中文语音合成TTS模型应用示例(比ChatTTS速度快)
逢生博客
python自然语言处理TTSKokoro中文语音合成
文章目录Github简介Kokoro模型中文模型安装依赖完整示例Githubhttps://github.com/hexgrad/kokoro简介Kokoro是一个开放权重的TTS模型,拥有8200万个参数。尽管它采用轻量级架构,但其质量却可与大型模型媲美,而且速度更快、成本更低。凭借Apache许可的权重,Kokoro可部署在从生产环境到个人项目的任何地方。Kokoro模型英文:https://
- Hbase的学习笔记(3)
白居不易.
hbase学习java
Hbase的学习笔记(3)本次主要学习Hbase与Java的配合使用,即通过Java语言完成对Hbase表的增删改查。1.所需依赖jar包org.apache.hadoophadoop-clientorg.apache.hadoophadoop-common注意:有些时候程序报错,跟maven的jar包加载顺序有关,具体的可以去了解下相关知识。我在测试时,虽然有的类导包进来是importorg.a
- java comp_Java EE异常:名称java:comp未在此上下文中绑定
FPGA hdl
javacomp
我在Netbeans7.2.1中有JavaEE应用程序。试图部署它(建设结束确定),我得到了Tomcat日志中的错误:Causedby:javax.naming.NameNotFoundException:Namejava:compisnotboundinthisContextatorg.apache.naming.NamingContext.lookup(NamingContext.java:7
- Java 与 AI 结合的实际操作规程案例
小徐博客
java
Java与AI结合的实际操作规程案例涵盖了从基础算法实现到工程化协作的多个层面。以下是基于最新实践的几个典型场景及操作规范:一、自然语言处理(NLP)与文本分类案例:使用ApacheOpenNLP实现新闻分类操作流程:数据准备:收集新闻文本数据并标注类别(如科技、体育等)。模型训练:利用OpenNLP的DocumentCategorizerME类加载训练数据,通过train()方法生成分类模型。分
- Apache Shiro 全面指南:从入门到高级应用
杨凯凡
Java框架java后端shiro
一、Shiro概述与核心架构1.1什么是Shiro?ApacheShiro是一个强大且易用的Java安全框架,它提供了认证(Authentication)、授权(Authorization)、加密(Cryptography)和会话管理(SessionManagement)等功能。与SpringSecurity相比,Shiro的设计更加直观和简单,同时又不失灵活性。Shiro的核心优势:简单性:AP
- CentOS 上 Apache Kafka 2.13-3.8.1 集群部署指南(ZooKeeper 模式)
CXH728
linqc#
1、安装前准备在开始部署Kafka集群之前,需要进行一些准备工作:操作系统和主机规划:准备至少3台CentOS服务器(可以是虚拟机或实体机),用于部署3个Kafkabroker节点和3个ZooKeeper实例。这样可以形成一个具有高可用性的生产级基本集群(典型架构一般使用3个ZooKeeper节点,必要时可扩展到5个。确保这些服务器网络互通,并为它们配置合适的主机名或IP地址(以下文档中假定主机名
- mybatis如何打印出完整sql语句
大猫子的技术日记
mybatissql数据库
分两步:1.在application.properties配置中添加配置项:mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpllogging.level.mapper文件的包路径=DEBUG(示例:logging.level.com.test.biztest.service.dal=DEBU
- Github 2025-03-28 Java开源项目日报Top10
老孙正经胡说
githubjava开源Github趋势分析开源项目PythonGolang
根据GithubTrendings的统计,今日(2025-03-28统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Java项目10ApacheSkyWalking:云原生架构中的开源APM系统创建周期:3142天开发语言:Java协议类型:ApacheLicense2.0Star数量:23411个Fork数量:6462次关注人数:23411人贡献人数:389人O
- Elasticsearch架构原理与底层设计:深入解析分布式架构、索引结构与高并发高可用机制
一碗黄焖鸡三碗米饭
elasticsearch架构分布式搜索引擎大数据java后端
Elasticsearch架构原理与底层设计:深入解析分布式架构、索引结构与高并发高可用机制在现代的搜索引擎和数据存储应用中,Elasticsearch是一个广泛使用的分布式搜索引擎,它基于ApacheLucene构建,提供强大的全文检索能力以及高效的分布式存储和检索能力。作为一款开源工具,Elasticsearch不仅仅是搜索引擎,它还可以用于日志存储、实时分析、监控以及各种数据查询需求。本文将
- 如何将Spring Boot项目与DeepSeek AI集成并优化为AI系统
小小鸭程序员
springspringbootdockerjava人工智能
一、项目准备1.创建SpringBoot项目使用SpringInitializr:选择依赖项(SpringWeb、Lombok、ApacheHttpClient)。Maven/Gradle配置:org.springframework.bootspring-boot-starter-weborg.apache.httpcomponentshttpclient4.5.132.配置DeepSeekAPI
- Debezium系列之:使用Debezium和Apache Iceberg构建数据湖
快乐骑行^_^
debeziumDebezium系列使用DebeziumApacheIceberg构建数据湖
Debezium系列之:使用Debezium和ApacheIceberg构建数据湖DebeziumServerIceberg“DebeziumServerIceberg”消费者设置数据复制Upsert模式保留已删除的记录使用Upsert模式追加模式优化批处理大小在数据分析的世界中,数据湖是存储和管理大量数据以满足数据分析、报告或机器学习需求的流行选择。在这篇博客文章中,我们将描述一种构建数据湖的简
- 苍穹外卖-Apache ECharts
罗纳尔琦
echarts前端javascript
一、介绍ApacheECharts是一款基于Javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。官网地址:ApacheECharts通过直观的图表来展示数据二、入门案例ApacheEcharts官方提供的快速入门:快速上手-Handbook-ApacheECharts总结:使用Echarts,重点在于研究当前图表所需的数据格式。通常是需要后端提供符合格式要
- Linux安装Zookeeper
「已注销」
linuxzookeeper服务器开发语言网络安全
Zookeeper可以作为分布式集群开发,本文是基于Centos7环境下安装的Zookeeper,具体步骤如下文所示:(1)下载Zookeeper,这里下载的是zookeeper-3.4.10.tar.gz,可以使用Linux的wget命令,也可以下载好安装包,将其上传至Linux环境中;下载的网址为:http://apache.fayea.com/zookeeper/复制代码(2)将其解压到/u
- 微信登录流程步骤加Sa-ToKen
suimeng6
JAVA微信spring
步骤Sa-Token的官网Sa-Token1.引入依赖和Sa-token依赖com.github.wechatpay-apiv3wechatpay-apache-httpclient0.4.8cn.dev33sa-token-spring-boot-starter1.37.0如果是SpringBoot3把sa-token的依赖改为sa-token-spring-boot3-starter2.配置微
- java导出/解析excel
深圳厨神
javaexcel开发语言
本文有三个方法:1,导出excel模板,只有表头2,导出excel,将数据导出为excel3,解析excelpackagecom.hebi.util;importorg.apache.poi.hssf.usermodel.HSSFCell;importorg.apache.poi.hssf.usermodel.HSSFCellStyle;importorg.apache.poi.hssf.user
- 大数据必学免费、开源分布式数据库——Apache Hive
遇码
大数据数据仓库开源hivehadoopsql数据库ApacheHive
Hive是大数据开发、分析领域无法绕开的一个话题。我将分认识Hive、快速部署、快速入门等几个模块为同学们详细地介绍Hive,期望可以为刚刚接触大数据领域的同学们建立一个初步的认知。Hive是什么Hive,又称ApacheHive,由Facebook开源用于解决海量结构化日志的数据统计工具。Hive是基于ApacheHadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查
- MyBatis打印SQL日志的配置
zrhsmile
Mybatismybatis数据库
配置MyBatis打印日志的步骤如下,支持多种日志框架(如Logback、Log4j2等):一、选择日志框架并添加依赖(以常见组合为例)1.Logback(推荐)ch.qos.logbacklogback-classic1.4.142.Log4j2org.apache.logging.log4jlog4j-core2.23.1org.apache.logging.log4jlog4j-slf4j2
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http