- log4j与logback(简介,配置项解释,配置示例,使用说明)
rookie19_
javalog4jlogback
文章目录共性配置项含义指定配置文件常用实践注意事项log.isDebugEnabled()开发时使用带作者名的日志代码合并到master之前检查日志附录logj.properties写法logback.xml写法commonslogging和slf4j是日志接口,而log4j和logback是日志实现。实际使用时,一般都是接口+实现的组合。(题外话:slf4j最让人印象深刻的可能就是大括号占位符了
- Nginx常用功能
real向往
Web服务nginx运维常用功能
文章目录一、静态资源服务二、反向代理三、负载均衡四、SSL证书五、TCP/UDP数据流代理六、开启WebSocket代理(一)配置解析(二)简介(三)原理(四)配置解析(五)问题七、跨域(一)解析(二)简介八、基于名称的虚拟主机(一)解析一、静态资源服务locationserver{listen80;server_name_;access_log/var/log/nginx/access.logj
- 随时爆雷!2023年四大“安全债”
胖头鱼不吃鱼-
安全
即将过去的2023年,网络安全、云安全、应用安全、数据安全领域暴露的诸多“安全债”中,有四大债务不但未能充分缓解,反而有在新的一年“爆雷”的风险。这四大债务分别是:Logj4漏洞、HTTP/2快速重置攻击漏洞、恶意电子邮件和后量子加密,以下我们分别介绍:一、Log4j漏洞仍然是2023年的头号漏洞Log4j漏洞是2021年11月曝出的互联网历史上最严重的漏洞之一,因为它不仅普遍存在、易于利用,且危
- springboot工程运行时动态改变logj4j2日志级别
爱码少年
SpringJavaspringbootjava后端
springboot工程运行时动态改变logj4j2日志级别核心代码:@ApiOperation("更新日志level")@GetMapping("/update-log")publicJsonResultupdateLogLevel(){LoggerContextloggerContext=LoggerContext.getContext(false);LoggerConfigloggerCon
- JAVA主要日志输出工具
踩踩踩从踩
数据库及海量数据存储javajunit开发语言
日志工具SLF4J-JCLLOG4J-CORELOGBACKSLF4J-SIMPLEJCL-OVER-SLF4JLOGBACK-CORELOG4JLOG4J-APILOG4J-JULLOG4J-JCLLOGBACK-ACCESSLOGBACK-CLASSICSLF4-APISLF4J-LOGJ12LOGBACK-CLASSICLOG4J-SLF4J-IMPLJAVA日志体系概述大家目前正在使用的日
- 关于MAC版本升级macOS Big Sur 后出现IDEA无法正常打开项目文件目录问题解决方案
街角幸福
开发工具
1.背景昨晚手欠更新了一下MAC最新版本,更新后满是欢喜。当我开始工作打开idea启动一个服务时候,日志满屏飘红,发现一个致命问题:Java项目,依赖cat,log,ucm,maven配置,都会在本地用户data目录下面读取相应的配置文件,但是控制台Log4j2打印日志报错:ERRORUnabletocreatefile/data/logs/actor-batch-service/app.logj
- Day21logj4与sl4j的区别
编程界翁老师
202009就业班log4jjavasl4j
学习目标(1)Junit针对方法(2)log4j与sl4j(3)Spring-IOClog4j的介绍(1)什么是log4j?Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件等(2)有什么特点?》可以控制每一条日志的输出格式》控制日志的生成过程通过一个配置文件来灵活地进行配置log4j.properties,而不需要修改应用的代码public
- Dubbo
魏恩君--Caroline
----【Java】
一dubbo缓存zookeeper宕掉,会从缓存中读取。zookeeper会定期更新缓存。二dubbo支持的容器spring容器,logj容器,jetty容器三dubbo多协议支持RMIHESSIAN/webService/http/thrift/dubbo四多注册中心五集群模式将服务多服务器部署,进行负载均衡(策略:轮询,随机,最小活跃度,hash)六配置1,服务端,配置bean,暴露服务2.客
- log4j2匹配规则
noname
log4j2java
1.level规则logj42会先匹配是否符合Logger/Root的level,如果符合的话,再一一匹配Logger/Root下的AppenderRef的level是否匹配。log4j2会先匹配日志级别是否符合Root的level级别,如果是,则一一匹配是否符合Console1和Console2的level级别。以上配置,logger.debug只会在Console1里打印出来,logger.i
- ssm之用logj输出日志
游荡人生
spring
ssm之用logj输出日志1.引入log4j所依赖的jar包org.apache.logging.log4jlog4j-api2.5org.apache.logging.log4jlog4j-core2.5org.apache.logging.log4jlog4j-web2.5org.slf4jslf4j-log4j121.7.132.在classpath的config目录下创建lo4j.prop
- commons-logging+log4j 进行ssm日志输出
Artoro
web框架
啊啊啊困扰很久的日志终于解决了,兴奋之余整理一下:参考链接:commons-logging与logj的特点这篇文章已经把commons-logging和log4j单独使用的方式以及各个的优缺点描述的很详细,但是这个并没有吧这两者结合起来,同时这个引入log4j.properties路径的问题需要看log4j日志加载,一下是我的日志测试类publicclassLogProperties{public
- Java中环境变量CLASSPATH的作用是什么?
王俊凯夫人
Java面试
CLASSPATH环境变量是用来指定Java程序搜索类的路径的,对于Java应用程序来说,该变量的意义是非常重要的。CLASSPATH环境变量是在编译Java源码和运行程序时使用的,也就是为Java程序所依赖的接口,类等指定一个搜索路径。其写法与Path变量类似,每个路径用分号进行分开,如果是一个jar文件,则直接写明该文件的绝对路径,如下所示:.;c:\jar\logj4.jar;d:\work
- 【工具】log4j的使用
飘散风中
工具支持
怕长时间不用再忘记,提醒自己一定要记录。项目:JAVA项目,使用Gradle配置打包。step1:使用gradle添加log4j的依赖。不知道怎么添加gradle及查找版本的,可以看https://blog.csdn.net/shankezh/article/details/104181562step2:在项目src/main/resources目录下,建立logj.properties文件(一定
- Activiti工作流框架学习(二)——使用Activiti提供的API完成流程操作
愚人节第二天
Activiti5
可以在项目中加入log4j,将logj4.properties文件拷入到src目录下,这样框架执行的sql就可以输出到到控制台,log4j提供的日志级别有以下几种:Fatalerrorwarninfodebugtrace一、部署流程定义1,在工程项目下创建源码文件夹process2,在该文件下下面新创建一个工作流流程定义文件test1.bpmn(NewàActivitDiagram)3,在test
- Spring的Log4J配置器Log4jWebConfigurer介绍
weixin_30460489
1.Logj4简介Log4j是Apache大旗下的一个子项目,它可以用来重定向应用日志文件的输出流,无论我们想将日志文件输出到控制台还是网络还是其他地方,都可以通过logj4来配置,如果我们的应用里面引入的Spring框架技术,我们可以通过Spring来初始化logj4的配置文件信息,下面2,3节是对Spring文档的一些翻译第4节是作者自己对一些问题的看法:2.Log4jWebConfigure
- SpringBoot中使用Log4j
我不吃面条z
SpringBoot
1.修改pom.xml,移除SpringBoot中默认的logback依赖,添加log4j依赖①移除logback依赖org.springframework.bootspring-boot-starter-web2.1.3.RELEASEorg.springframework.bootspring-boot-starter-logging②添加logj依赖org.springframework.b
- 利用logstash+filebeat采集logj4j日志
符千青
分布式
对于分布式系统,如果只是把日志存储在本地,或者直接输出到控制台,以后调试和差错将会非常麻烦,需要查看若干个服务器。因此,我采用logstash+filebeat的方法统一处理日志(完整应该使用elk+filebeat处理日志)材料:服务器1(bebian系列),ip为192.168.1.1,该服务器搭建logstash服务器2(bebian系列):ip为192.168.1.2,该服务器搭建应用程序
- Kafka写入logstash,logstash filter数据到elasticsearch
qq_28600087
数据采集
项目通过log4j2把日志写到了Kafka中,为了进一步分析数据通过logstash取出kafka的数据,经过filter处理之后,存入到elasticsearch中。log4j2写入kafka主要是配置logj2.xml文件,加入kafka的配置和日志输出。主题要配置正确,ip和端口号要配置kafka的,不是zookeeper的。Loggers要加入配好的AUDIT_KAFKA.logstash
- slf4j、log4j、logback简要说明
吕纬甫
java
slf4j、log4j、logback三者之间的关系看下面这张图就比较清晰了:slf4j是接口,而log4j与logback是实现。log4j与logback各自依赖的jar包在这篇文章里有提到logj4依赖(版本根据自己项目来定,这里不一定合适):log4jlog4j1.2.17org.slf4jslf4j-log4j12testlogback依赖:ch.qos.logbacklogback-c
- log4j2日志保存
pengjwhx
java技术总结java经验
logj2与log4j的区别log4j2是log4j的升级版,log4j2.0与以往的1.x有一个明显的不同,其配置文件只能采用.xml,.json或者.jsn。在默认情况下,系统选择configuration文件的优先级如下:(classpath为scr文件夹):1.classpath下名为log4j-test.json或者log4j-test.jsn文件2.classpath下名为log4j2
- Hibernate框架之连接池,logj4日志系统的使用
小章鱼啊
HibernateHibernate
连接池就是创建一个容器,用于装入多个Connection对象,在使用连接对象时,从容器中获取一个Connection,使用完成后,在将这个Connection重新装入到容器中。这个容器就是连接池。(DataSource)也叫做数据源。我们可以通过连接池获取连接对象。优点:节省创建连接与释放连接性能消耗—-连接池中连接起到复用的作用,提高程序性能,从池中使用连接,用完放回。配置driverClass
- Java log日志的配置方法(MyEclipse10)
大志天成119
1.选择需要构建日志的文件鼠标右击,选择properties,单击打开,选择JavaBuildPath---Libraries,之后选择如图:2.需要把logj4的包添加进去,如图:3.需要新建一个文件如图:4.新建完成之后需要把下面的代码复制到文件中,如图:5.接下来在工程里面需要做把下图最上面的两行蓝色代码写作工程对于位置:6.相应的根据提示进行导包,在导包的过程中需要注意在导looger包时
- 上海数据更新问题,日志无记录总结
qingziguanjun1
上海的数据更新,多了很多数据,自己不知道什么问题,多少数据不知道,浦东浦西的csv也找不到,日志打印一团糟,然后自己整改。 日志:对于每个更新线程,提供一个日志输出文件,这样清晰明了,改正过程。 百度,输出多个日志文件,在本地学习测试,一开始,实验不成功,因为没有理解log4j的使用,logj的这个配置是配置根日志文件,自己把自定义的日志也定义了在这里,导致的问题就是所有的文件都有输出:lo
- Log4J.xml的模板
log4j
在编码中我们会经常使用logj进行某个地方监控,这时候就需要用到log4j了.log4j.xml的模板如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log
- 【Java.ThirdParty】日志——Log4j——1——配置及使用
robinjwong
javalib3rd
Log4j 1.xLog4j配置文件的加载默认加载方式若系统中未显式的指定配置文件,则Logj4默认会加载log4j.xml和log4j.properties文件。当系统调用Log4j的LoggerFactory.getLogger()方法时,调用栈如下:在LogManager.即静态块的初始块中,若系统中未定义log4j.configuration属性,则Log4j首先尝试加载log4j.xml
- lsf4j jar包依赖 引起日志打印不出来的问题
sha.tians
jar包
最近在搭建应用测试环境的时候遇到一个问题,应用搭建不起来,而且spring框架的日志都没有打印出来,根据jetty日志可以看出,问题出在日志上面,在网上搜索了相关的资料,了解到log4j、slf4j以及logback的相互影响如下: 根据上图所示,slf4j-api绑定slf4j-logj12可以输出log4j日志,slf4j-api与logback绑定会输出logback日志
- log4j自定义日志等级
java-xp
log4j
文章源地址:
http://www.186info.com/?p=61
log4j自定义日志等级,步骤如下
1.继承logj的level类,定义一个自己的日志级别:
public class TestLevel extends Level {
public TestLevel(int level, String levelStr, int syslogEquivalent)
- Log4J.xml的模板
帅得被人看
log4j
在编码中我们会经常使用logj进行某个地方监控,这时候就需要用到log4j了.log4j.xml的模板如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
- Classloader和线程
kevx
线程ClassLoader
Java中所有的类都是由classloader进行加载的。通常情况下我们不需要显式的去使用类加载器。但是对于一个web容器而言,通常拥有多个classloader,我们知道,每个classloader所加载的类彼此都是不可见的。比如一个servlet程序,它使用了WEB-INF/lib下面的log4j,而tomcat本身也有一套logj的包。显然对于servlet而言,它是看不到tomcat的l
- Classloader和线程
kevx
ClassLoader线程JavaEE
Java中所有的类都是由classloader进行加载的。通常情况下我们不需要显式的去使用类加载器。但是对于一个web容器而言,通常拥有多个classloader,我们知道,每个classloader所加载的类彼此都是不可见的。比如一个servlet程序,它使用了WEB-INF/lib下面的log4j,而tomcat本身也有一套logj的包。显然对于servlet而言,它是看不到tomcat的lo
- ASM系列五 利用TreeApi 解析生成Class
lijingyao8206
ASM字节码动态生成ClassNodeTreeAPI
前面CoreApi的介绍部分基本涵盖了ASMCore包下面的主要API及功能,其中还有一部分关于MetaData的解析和生成就不再赘述。这篇开始介绍ASM另一部分主要的Api。TreeApi。这一部分源码是关联的asm-tree-5.0.4的版本。
在介绍前,先要知道一点, Tree工程的接口基本可以完
- 链表树——复合数据结构应用实例
bardo
数据结构树型结构表结构设计链表菜单排序
我们清楚:数据库设计中,表结构设计的好坏,直接影响程序的复杂度。所以,本文就无限级分类(目录)树与链表的复合在表设计中的应用进行探讨。当然,什么是树,什么是链表,这里不作介绍。有兴趣可以去看相关的教材。
需求简介:
经常遇到这样的需求,我们希望能将保存在数据库中的树结构能够按确定的顺序读出来。比如,多级菜单、组织结构、商品分类。更具体的,我们希望某个二级菜单在这一级别中就是第一个。虽然它是最后
- 为啥要用位运算代替取模呢
chenchao051
位运算哈希汇编
在hash中查找key的时候,经常会发现用&取代%,先看两段代码吧,
JDK6中的HashMap中的indexFor方法:
/**
* Returns index for hash code h.
*/
static int indexFor(int h, int length) {
- 最近的情况
麦田的设计者
生活感悟计划软考想
今天是2015年4月27号
整理一下最近的思绪以及要完成的任务
1、最近在驾校科目二练车,每周四天,练三周。其实做什么都要用心,追求合理的途径解决。为
- PHP去掉字符串中最后一个字符的方法
IT独行者
PHP字符串
今天在PHP项目开发中遇到一个需求,去掉字符串中的最后一个字符 原字符串1,2,3,4,5,6, 去掉最后一个字符",",最终结果为1,2,3,4,5,6 代码如下:
$str = "1,2,3,4,5,6,";
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;
- hadoop在linux上单机安装过程
_wy_
linuxhadoop
1、安装JDK
jdk版本最好是1.6以上,可以使用执行命令java -version查看当前JAVA版本号,如果报命令不存在或版本比较低,则需要安装一个高版本的JDK,并在/etc/profile的文件末尾,根据本机JDK实际的安装位置加上以下几行:
export JAVA_HOME=/usr/java/jdk1.7.0_25  
- JAVA进阶----分布式事务的一种简单处理方法
无量
多系统交互分布式事务
每个方法都是原子操作:
提供第三方服务的系统,要同时提供执行方法和对应的回滚方法
A系统调用B,C,D系统完成分布式事务
=========执行开始========
A.aa();
try {
B.bb();
} catch(Exception e) {
A.rollbackAa();
}
try {
C.cc();
} catch(Excep
- 安墨移动广 告:移动DSP厚积薄发 引领未来广 告业发展命脉
矮蛋蛋
hadoop互联网
“谁掌握了强大的DSP技术,谁将引领未来的广 告行业发展命脉。”2014年,移动广 告行业的热点非移动DSP莫属。各个圈子都在纷纷谈论,认为移动DSP是行业突破点,一时间许多移动广 告联盟风起云涌,竞相推出专属移动DSP产品。
到底什么是移动DSP呢?
DSP(Demand-SidePlatform),就是需求方平台,为解决广 告主投放的各种需求,真正实现人群定位的精准广
- myelipse设置
alafqq
IP
在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的数倍。因此项目的可维护性、可复用性是衡量一个项目好坏的关键。而注释则是可维护性中必不可少的一环。
注释模板导入步骤
安装方法:
打开eclipse/myeclipse
选择 window-->Preferences-->JAVA-->Code-->Code
- java数组
百合不是茶
java数组
java数组的 声明 创建 初始化; java支持C语言
数组中的每个数都有唯一的一个下标
一维数组的定义 声明: int[] a = new int[3];声明数组中有三个数int[3]
int[] a 中有三个数,下标从0开始,可以同过for来遍历数组中的数
- javascript读取表单数据
bijian1013
JavaScript
利用javascript读取表单数据,可以利用以下三种方法获取:
1、通过表单ID属性:var a = document.getElementByIdx_x_x("id");
2、通过表单名称属性:var b = document.getElementsByName("name");
3、直接通过表单名字获取:var c = form.content.
- 探索JUnit4扩展:使用Theory
bijian1013
javaJUnitTheory
理论机制(Theory)
一.为什么要引用理论机制(Theory)
当今软件开发中,测试驱动开发(TDD — Test-driven development)越发流行。为什么 TDD 会如此流行呢?因为它确实拥有很多优点,它允许开发人员通过简单的例子来指定和表明他们代码的行为意图。
TDD 的优点:
&nb
- [Spring Data Mongo一]Spring Mongo Template操作MongoDB
bit1129
template
什么是Spring Data Mongo
Spring Data MongoDB项目对访问MongoDB的Java客户端API进行了封装,这种封装类似于Spring封装Hibernate和JDBC而提供的HibernateTemplate和JDBCTemplate,主要能力包括
1. 封装客户端跟MongoDB的链接管理
2. 文档-对象映射,通过注解:@Document(collectio
- 【Kafka八】Zookeeper上关于Kafka的配置信息
bit1129
zookeeper
问题:
1. Kafka的哪些信息记录在Zookeeper中 2. Consumer Group消费的每个Partition的Offset信息存放在什么位置
3. Topic的每个Partition存放在哪个Broker上的信息存放在哪里
4. Producer跟Zookeeper究竟有没有关系?没有关系!!!
//consumers、config、brokers、cont
- java OOM内存异常的四种类型及异常与解决方案
ronin47
java OOM 内存异常
OOM异常的四种类型:
一: StackOverflowError :通常因为递归函数引起(死递归,递归太深)。-Xss 128k 一般够用。
二: out Of memory: PermGen Space:通常是动态类大多,比如web 服务器自动更新部署时引起。-Xmx
- java-实现链表反转-递归和非递归实现
bylijinnan
java
20120422更新:
对链表中部分节点进行反转操作,这些节点相隔k个:
0->1->2->3->4->5->6->7->8->9
k=2
8->1->6->3->4->5->2->7->0->9
注意1 3 5 7 9 位置是不变的。
解法:
将链表拆成两部分:
a.0-&
- Netty源码学习-DelimiterBasedFrameDecoder
bylijinnan
javanetty
看DelimiterBasedFrameDecoder的API,有举例:
接收到的ChannelBuffer如下:
+--------------+
| ABC\nDEF\r\n |
+--------------+
经过DelimiterBasedFrameDecoder(Delimiters.lineDelimiter())之后,得到:
+-----+----
- linux的一些命令 -查看cc攻击-网口ip统计等
hotsunshine
linux
Linux判断CC攻击命令详解
2011年12月23日 ⁄ 安全 ⁄ 暂无评论
查看所有80端口的连接数
netstat -nat|grep -i '80'|wc -l
对连接的IP按连接数量进行排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
查看TCP连接状态
n
- Spring获取SessionFactory
ctrain
sessionFactory
String sql = "select sysdate from dual";
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
String[] names = wac.getBeanDefinitionNames();
for(int i=0; i&
- Hive几种导出数据方式
daizj
hive数据导出
Hive几种导出数据方式
1.拷贝文件
如果数据文件恰好是用户需要的格式,那么只需要拷贝文件或文件夹就可以。
hadoop fs –cp source_path target_path
2.导出到本地文件系统
--不能使用insert into local directory来导出数据,会报错
--只能使用
- 编程之美
dcj3sjt126com
编程PHP重构
我个人的 PHP 编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考 PHP 手册。希望下面的代码,会更有利于对递归以及静态变量的理解
header("Content-type: text/plain");
function static_function () {
static $i = 0;
if ($i++ < 1
- Android保存用户名和密码
dcj3sjt126com
android
转自:http://www.2cto.com/kf/201401/272336.html
我们不管在开发一个项目或者使用别人的项目,都有用户登录功能,为了让用户的体验效果更好,我们通常会做一个功能,叫做保存用户,这样做的目地就是为了让用户下一次再使用该程序不会重新输入用户名和密码,这里我使用3种方式来存储用户名和密码
1、通过普通 的txt文本存储
2、通过properties属性文件进行存
- Oracle 复习笔记之同义词
eksliang
Oracle 同义词Oracle synonym
转载请出自出处:http://eksliang.iteye.com/blog/2098861
1.什么是同义词
同义词是现有模式对象的一个别名。
概念性的东西,什么是模式呢?创建一个用户,就相应的创建了 一个模式。模式是指数据库对象,是对用户所创建的数据对象的总称。模式对象包括表、视图、索引、同义词、序列、过
- Ajax案例
gongmeitao
Ajaxjsp
数据库采用Sql Server2005
项目名称为:Ajax_Demo
1.com.demo.conn包
package com.demo.conn;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;
//获取数据库连接的类public class DBConnec
- ASP.NET中Request.RawUrl、Request.Url的区别
hvt
.netWebC#asp.nethovertree
如果访问的地址是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree%3C&n=myslider#zonemenu那么Request.Url.ToString() 的值是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree<&
- SVG 教程 (七)SVG 实例,SVG 参考手册
天梯梦
svg
SVG 实例 在线实例
下面的例子是把SVG代码直接嵌入到HTML代码中。
谷歌Chrome,火狐,Internet Explorer9,和Safari都支持。
注意:下面的例子将不会在Opera运行,即使Opera支持SVG - 它也不支持SVG在HTML代码中直接使用。 SVG 实例
SVG基本形状
一个圆
矩形
不透明矩形
一个矩形不透明2
一个带圆角矩
- 事务管理
luyulong
javaspring编程事务
事物管理
spring事物的好处
为不同的事物API提供了一致的编程模型
支持声明式事务管理
提供比大多数事务API更简单更易于使用的编程式事务管理API
整合spring的各种数据访问抽象
TransactionDefinition
定义了事务策略
int getIsolationLevel()得到当前事务的隔离级别
READ_COMMITTED
- 基础数据结构和算法十一:Red-black binary search tree
sunwinner
AlgorithmRed-black
The insertion algorithm for 2-3 trees just described is not difficult to understand; now, we will see that it is also not difficult to implement. We will consider a simple representation known
- centos同步时间
stunizhengjia
linux集群同步时间
做了集群,时间的同步就显得非常必要了。 以下是查到的如何做时间同步。 在CentOS 5不再区分客户端和服务器,只要配置了NTP,它就会提供NTP服务。 1)确认已经ntp程序包: # yum install ntp 2)配置时间源(默认就行,不需要修改) # vi /etc/ntp.conf server pool.ntp.o
- ITeye 9月技术图书有奖试读获奖名单公布
ITeye管理员
ITeye
ITeye携手博文视点举办的9月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 9月试读活动回顾:http://webmaster.iteye.com/blog/2118112本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《NFC:Arduino、Andro