- Spring事务管理
Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。Spring只提供统一事务管理接口,具体实现都是由各数据库自己实现。Spring会在事务开始时,根据当前环境中设置的隔离级别,调整数据库隔离级别,由此保持一致。Spring事务的种类spring支持编程式事务管理和声明式事务管理两种方式:①编程式事务管理使用TransactionTemplat
- Spring 事务传播行为和隔离级别是如何实现的?
Spring事务传播与隔离:深入实现原理在Spring框架中,声明式事务管理通过@Transactional注解为开发者提供了极大的便利,使得开发者可以专注于业务逻辑,而将繁琐的事务控制代码交给框架处理。其核心在于对事务传播行为(Propagation)和隔离级别(Isolation)的精确控制。本文将深入剖C析Spring是如何实现这两大特性的。核心实现:AOP代理与事务管理器Spring事务管
- SpringBoot学习杂记
小夕Coding
大数据系列springboot学习java
SpringBoot学习杂记1.依赖注入Spring学习(十八)Bean的三种依赖注入方式介绍@Autowired的使用:推荐对构造函数进行注释2.AOPAspectj与SpringAOP比较-简书(jianshu.com)=>图文并茂,推荐阅读3.Spring事务Spring中同一类@Transactional修饰方法相互调用的坑_前路无畏的博客-CSDN博客<=避坑推荐
- Spring事务管理详解:核心接口、声明式管理与工作原理
夏壹分享
spring数据库sql
Spring如何实现事务管理Spring实现事务管理主要通过其事务管理抽象,它为事务管理提供了一致的编程模型。Spring的事务管理支持编程式和声明式事务管理两种方式。声明式事务管理由于其易用性和灵活性,在实际开发中使用更为广泛。1.Spring事务管理核心接口Spring事务管理的核心接口主要有三个:PlatformTransactionManager、TransactionDefinition
- Java领域事务管理:Spring事务机制详解
AI应用架构探索者
AI人工智能与大数据应用开发AI实战javaspring网络ai
Java领域事务管理:Spring事务机制详解关键词:Java、Spring事务机制、事务管理、ACID、传播行为摘要:本文深入探讨了Java领域中Spring事务机制的相关内容。首先介绍了事务管理的背景知识,包括事务的基本概念、目的和范围等。接着详细阐述了Spring事务机制的核心概念,如事务的传播行为、隔离级别等,并给出了相应的架构示意图和流程图。然后对Spring事务的核心算法原理进行了分析
- Spring事务注解详解:确保你的应用数据的一致性
fei飛fei飞
springjava后端
想象一下,你正在开发一个电商平台,用户下单后系统需要更新库存、生成订单、扣除用户余额。如果在这个过程中出现了错误,如何确保数据的一致性?这时候,Spring的事务注解就派上用场了!它们让你能够以简单的方式管理复杂的数据库操作,确保你的应用程序在面对挑战时依然稳如泰山。接下来,让我们深入探讨Spring事务注解的奥秘,帮助你在数据管理上游刃有余。1.什么是事务?事务是一个逻辑操作单元,它由一系列的数
- spring之事务管理
writeanewworld
1.spring简介spring中认为一切java类都是资源,而资源都是Bean,容纳这些Bean的是spring提供的Ioc容器,所以Spring是一种基于bean的编程。spring的作用主要是整合框架。2.spring中的事务管理,首先事务的基本概念就是一处报错,全部回滚。这也是spring事务管理的基本作用。3.spring事务管理分为xml跟注解案例:(1)实体类Employee.jav
- 事务注解可能失效的几种可能原因
℡余晖^
黑马点评项目相关问题和笔记javajvm开发语言
在黑马点评项目的学习过程中,我遇到了事务失效的问题,其中提到了事务失效的可能原因,本文就来简单了解一下事务实现的可能原因是什么。Spring事务的生效机制、自调用失效原因及常见失效场景,可从以下维度详细解析:一、Spring如何确保事务生效?Spring事务的核心实现依赖AOP(面向切面编程)和动态代理,其核心流程如下:1.代理对象的生成Spring通过@Transactional注解标记需要事务
- Spring之事务使用指南
AA-代码批发V哥
springJavaEEspring
Spring之事务使用指南一、事务的基础概念1.1什么是事务?1.2事务的ACID特性1.3Spring事务的核心优势二、Spring事务的核心配置三、事务传播行为(Propagation)3.1常用传播行为详解3.1.1`REQUIRED`(默认值)3.1.2`SUPPORTS`3.1.3`REQUIRES_NEW`3.1.4`NEVER`3.1.5`MANDATORY`3.2传播行为选择原则四
- Spring事务管理核心机制:隔离级别与传播属性深度解析
weixin_54726354
springjava
Spring事务管理核心机制:隔离级别与传播属性深度解析基于SpringFramework6.x源码,深入剖析事务隔离级别和传播属性的设计原理与实际应用引言在Spring框架的事务管理体系中,**隔离级别(IsolationLevel)和传播属性(PropagationBehavior)**是两个核心概念,它们分别解决了不同维度的问题:隔离级别:解决并发事务之间的数据一致性问题传播属性:解决嵌套方
- Spring事务管理深度解析:从源码到实战的技术面试之旅
weixin_54726354
springbootSpring事务管理源码分析Java企业级开发
Spring事务管理深度解析:从源码到实战的技术面试之旅"源码面前,了无秘密"——一场深入SpringFramework核心的技术探险前言:为什么要深入Spring事务源码?在Java企业级开发中,Spring事务管理是绕不开的核心技术。但很多开发者只停留在@Transactional注解的表面使用,对其背后的设计原理和实现机制知之甚少。今天,我们将通过一场模拟面试的形式,深入SpringFram
- Spring事务管理深度解析:AOP机制与实战要点
半个脑袋儿
Springspringjava后端
结论先行AOP代理是基石:Spring事务通过动态代理(JDK或CGLIB)为@Transactional注解的Bean创建代理对象。事务逻辑(开启、提交、回滚)被封装在切面(核心是TransactionInterceptor)中,与业务代码解耦。注解驱动配置:@Transactional注解声明事务属性(传播行为、隔离级别等)。Spring容器在启动时解析此注解并创建代理。拦截器执行事务:方法调
- Spring事务失效的八大核心原因与深度解析
fjkxyl
spring数据库网络
一、事务失效的本质原理Spring事务管理基于动态代理机制实现,通过AOP拦截带有@Transactional注解的方法,在方法执行前后开启/提交事务。当代理链路被破坏或事务控制要素缺失时,就会导致事务失效。图1展示了正常事务拦截流程:客户端事务代理目标对象数据库方法调用begintransaction调用实际方法执行SQL返回结果commitrollbackalt[执行成功][执行失败]最终响应
- Spring事务管理深度解析:原理、实践与陷阱
JouJz
javaspring
Spring事务管理深度解析:原理、实践与陷阱一、事务基础概念ACID原则原子性(Atomicity):事务内的操作要么全部成功,要么全部回滚一致性(Consistency):事务前后数据库状态保持一致隔离性(Isolation):并发事务间相互隔离持久性(Durability):事务提交后数据永久存储二、Spring事务核心接口publicinterfacePlatformTransaction
- Spring @Transactional 注解的回滚条件
weixin_34268579
javapython运维
2019独角兽企业重金招聘Python工程师标准>>>一、结论Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)和Error时进行回滚。如果一个方法抛出Checked异常,Spring事务管理默认不进行回滚。rollingbackonRuntimeExceptionandErrorbutnotoncheckedexceptions关于异常的
- Java 领域 Hibernate 的事务传播行为详解
Java大师兄学大数据AI应用开发
javahibernate开发语言ai
Java领域Hibernate的事务传播行为详解关键词:Hibernate、事务传播、Spring事务、PROPAGATION_REQUIRED、PROPAGATION_REQUIRES_NEW、事务隔离级别、数据库事务摘要:本文将深入探讨Hibernate框架中的事务传播行为机制。我们将从基础概念出发,详细解析七种标准的事务传播行为类型,包括REQUIRED、SUPPORTS、MANDATORY
- Spring的事务基础详解:从原理到实践的全面解析
一切皆有迹可循
Java开发spring数据库sqljava架构后端
前言事务管理是企业级应用开发中不可或缺的一部分,它确保数据操作的一致性和完整性。Spring框架提供了强大而灵活的事务管理机制,本文将深入探讨Spring事务的基础知识、实现方式及最佳实践。一、事务基本概念1.1事务的ACID特性原子性(Atomicity):事务中的操作要么全部成功,要么全部失败一致性(Consistency):事务执行前后数据保持一致状态隔离性(Isolation):多个事务之
- Spring事务传播行为?失效情况?(详解)
事务传播行为指的就是当一个事务方法被另一个事务方法调用时这个事务方法应该如何进行。Spring中有七种事务的传播行为,分别是:required、requires_new、supports、not_supported、nested、mandatory、neverrequired如果当前没事务,就新建一个事务;如果已经存在事务,则加入该事务外围A方法,内围B、C方法requiredA方法无事务(外围方
- Spring事务传播行为全解析
代码的余温
springjava数据库
在Spring事务管理中,定义了7种事务传播行为,用于控制多个事务方法嵌套调用时事务如何传播与交互。具体如下:1.支持当前事务的传播行为PROPAGATION_REQUIRED(默认)行为:当前存在事务:加入该事务。当前无事务:新建一个事务。特点:嵌套方法共用同一事务,任一方法异常导致整体回滚。适用场景:多数业务方法(如订单创建需同时更新库存和日志)。PROPAGATION_SUPPORTS行为:
- Spring事务传播行为:七种传播机制详解
程序媛学姐
Spring全家桶Javaspring数据库java
文章目录引言一、事务传播行为概述二、REQUIRED传播行为三、SUPPORTS传播行为四、MANDATORY传播行为五、REQUIRES_NEW传播行为六、NOT_SUPPORTED传播行为七、NEVER传播行为八、NESTED传播行为总结引言事务传播行为是Spring事务管理框架中的核心概念,它定义了当一个事务方法被另一个事务方法调用时应该如何处理事务边界。正确理解和应用这些传播行为对于确保数
- 有关Spring事务的传播机制
这是一个非常常见的关于Spring事务传播机制的问题,核心问题是:在同一个类中,方法A调用方法B,而方法B上有@Transactional注解。当调用方法A时,如果发生异常,方法B的事务会生效吗?✅简短回答:示例代码说明@ServicepublicclassMyService{publicvoidmethodA(){//做一些操作methodB();//内部调用methodB}@Transacti
- Spring 事务(3)—— Spring 事务传播行为详解
shangjg3
Java总结Springspringjava后端
Spring框架的事务传播行为是企业级应用开发中至关重要的概念,它定义了事务在嵌套调用时的行为模式。本文将深入探讨Spring事务传播的七种行为模式,并通过源码和示例详细解析其使用方法。1.事务传播行为概述事务传播行为决定了在嵌套事务调用时,新事务如何与现有事务关联。例如,当一个带事务的方法调用另一个带事务的方法时,Spring需要明确如何管理这些事务的边界。
- Spring事务传播行为 详解
Calvad0s
Javaspringjava数据库事务传播行为requiredTransactional事务
目录一、什么是事务传播行为?二、七种事务传播行为1、required(默认)2、supports3、mandatory4、requires_new5、not_supported6、never7、nested一、什么是事务传播行为?@TransactionalpublicStringinsertOrder(OrderEntityorderEntity,UserEntityuserEntity){in
- Spring事务同步器(TransactionSynchronizationManager)+ 事务钩子函数的使用案例
拄杖忙学轻声码
SpringBootspring
说明:在实际开发中,通常会有这样的需求,主线程执行业务逻辑后需要发送异步消息到MQ或者需要执行异步线程任务,此时可能主线程的事务还没提交,就会导致在异步任务中查询不到主线程写入库的数据,因此这里需要使用Spring提供的事务同步器和事务钩子函数来解决这个问题1、使用TransactionSynchronizationManager.isSynchronizationActive()判断当前线程是否
- Spring事务提交后执行,异步执行失败问题
Tony666688888
springjava
事务提交后执行,用于解决事务中异步执行时,事务未完成导致的异步执行失败问题@Service@Slf4jpublicclassAfterCommitExecutor{publicvoidexecute(Runnablerunnable){if(TransactionSynchronizationManager.isActualTransactionActive()){TransactionSynch
- Spring 中如何开启事务?
残*影
常用框架面试springjava后端
导语:事务管理是后端开发中的核心能力,尤其在电商、支付、库存等敏感系统中更是重中之重。面试中,“Spring中如何开启事务?”是极具辨识度的问题,能直接看出你对框架、数据库、异常机制的理解深度。本文将全面解析Spring事务的开启方式、注解配置及底层原理,助你在面试中稳扎稳打,拿下核心问题。一、面试主题概述在Java后端面试中,Spring事务管理是中高级工程师绕不开的话题。面试官不仅想知道你是否
- 从一个点来详细说说事务失效的场景及解决办法
珊瑚怪人
数据库mysqljava事务Transactionalsqlaop
在使用Spring事务时,我们可能会遇到这样一个情况:明明方法上加了@Transactional,也抛出了异常,为什么数据库却没有回滚?我最近在实际开发中就踩到了这样一个坑。经过调试分析,发现事务没有生效的根源在于——同类方法之间的直接调用跳过了Spring的代理机制。这篇文章将还原这个问题的场景、分析原因,并给出最佳实践和通用解决方案。一、问题场景复现@OverridepublicUploadF
- [JAVAEE]实验05:Spring事务管理
Topus
前端开发之路javaee
1.SpringJDBC1.1applicationContext.xml内配置好数据库相关信息1.2创建实体类MyUserpublicclassMyUser{privateIntegeruid;privateStringuname;privateStringusex;publicIntegergetUid(){returnuid;}publicvoidsetUid(Integeruid){thi
- 【JavaEE】Spring事务
鸽鸽程序猿
JavaEEjava-eespring数据库
目录一、事务简介二、Spring事务的实现2.1事务的操作2.2分类2.2.1Spring编程式事务2.2.2Spring声明式事务@Transactional2.2.2.1@Transactional详解2.2.2.1.1rollbackFor2.2.2.1.2Isolation2.2.2.1.3propagation一、事务简介事务:事务是⼀组操作的集合,是⼀个不可分割的操作。事务会把所有的操
- Spring Boot事务失效场景及解决方案
青临的踩坑之路
springboot数据库sql
事务失效场景1:方法非public修饰原因Spring事务基于动态代理(AOP)实现,非public方法无法被代理拦截,导致事务失效。代码示例@ServicepublicclassOrderService{@TransactionalprivatevoidcreateOrder(){//非public方法//业务逻辑}}解决方案将方法改为public修饰。若需限制方法访问权限,可通过编程式事务(T
- 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