2007-08-08
AOP基本概念
关键字: AOP动机和基本概念
声明:这篇文章不是为那些已经了解AOP的人准备的,而是为那些还不解AOP是什么的程序员而写。所以请那些“高手”为那些不了解AOP的人着想一下高抬贵手,不要轻易隐藏或置为入门贴而隐藏,这片文章的主要内容来自于:
http://en.wikipedia.org/wiki/Aspect-oriented_programming
AOP并不是一种新的技术或者新的思想,早在60年代的程序员用模块化编程的时候就开始了这样程序思想。通过将不同的关注封装在不同的模块中来实现“关注分离的目的。我们的程序中有些(方面)的代码是分离的或者缠结在一起的,这使得这些代码难以理解和维护。当一个关注(concern)(比如 记录日志)被分散在很多模块中的时候(比如类和方法),代码是分离的,这意味着改变日志记录需要更改所有受影响的模块。
例如,考虑如下的银行应用中非常简单易懂的,用于从一个账户向另一个账户转账的方法代码:
void transfer(Account fromAccount, Account toAccount, int amount)
{
if (fromAccount.getBalance() < amount)
{
throw new InsufficientFundsException();
}
fromAccount.withdraw(amount);//从一个帐户提款。
toAccount.deposit(amount); //向另一个帐户存款。
}
但是,上面的代码对于现实中的银行应用还远远不够。现实银行应用需要校验当前用户是否有权限执行这个操作的安全性检查。操作应当在数据库事务中进行以防止数据的意外丢失。为了便于诊断系统中出现的问题,这些操作还应当被记录到系统日志中。诸如此类。带有所有这些新“关注”的代码的简单版本如下:
void transfer(Account fromAccount, Account toAccount, int amount)
{
if (!getCurrentUser().canPerform(OP_TRANSFER))
{
throw new SecurityException();
}
if (amount < 0)
{
throw new NegativeTransferException();
}
if (fromAccount.getBalance() < amount)
{
throw new InsufficientFundsException();
}
Transaction tx = database.newTransaction();
try
{
fromAccount.withdraw(amount);
toAccount.deposit(amount);
tx.commit();
systemLog.logOperation(OP_TRANSFER, fromAccount, toAccount, amount);
}
catch(Exception e)
{
tx.rollback();
throw e;
}
}
上面的代码因为新的不同的关注已经同基本的功能(有时候称为业务逻辑关注)缠结在一起,所以已经丧失了优雅性和简单性。事务,安全性和日志记录示范了什么是横切关注(cross-cutting concerns)。
考虑到如果突然需要改变的时候,(例如)应用关于安全性的考虑。在程序的当前版本中,安全相关的操作分散在跨越多个模块的代码中,如果发生变化会产生很大影响。
因此,我们发现“横切关注”没有被正确地封装在它们自己的模块中。这增加了系统的复杂性,并且使系统的升级变得相当困难。
AOP试图通过让编程者在单独的被称之为“切面(aspects)”的模块中表示“横切关注”来解决这个问题。“切面”包含通知(advice,被连接到程序中特定点的代码)和内部类型声明(增加到其他类中的结构性成员)。例如,安全模块可以包含在访问银行账户访问之前来执行安全检查的通知(advice)。切入点(pointcut)定义了连接点银行帐户被访问的时机(连接点,join points),而通知体中的代码定义 “安全保护”如何被实现。这样,检查和替换可以在一个地方维护。进一步讲,一个好的切入点可以参与后续的程序变化,因此如果一个开发者创建了一个新的用于访问银行账户的方法,那么通知可以在执行时被用于这个新建的方法。
连接点(join points):在计算机科学中,“连接点”是连接程序中“控制流程(control flow)”的点。在面向方面的编程中,一系列的连接点集合被描述为“切入点”。连接点是主程序和“方面”的相会之处。在面向对象语言中,连接点是程序执行中定义良好的点。这些点包括方法和构造函数的调用、字段访问以等等内容
切入点(pointcut):在面向方面计算机编程中,切入点是一系列连接点的集合。当程序执行到切入点所描述的其中一个连接点时,与这个切入点相关的代码片(被称为通知)就会被执行。这就使得一个程序员可以描述“何处”以及“何时”在已定义的行为之外去执行附加的代码。这样就能向已经存在的软件增加新的方面(aspects),或者是软件的设计带有清晰的“关注分离(separation of concerns)”的特点,从而使编程者将不同的方面融入到一个完整的应用中。
通知(advice): 在面向方面计算机编程中,一片“通知”描述用于应用于程序中给定连接点的一个函数(function)、方法(method)和过程(procedure) 。
连接点模型(Join point models)
面向方面语言中与通知相关的组件定义了一个连接点模型(join point model-JPM),JPM定义了三件事情:
何时(advice)通知可以运行。之所以叫连接点(join points)是因为它们是正在运行程序中那些附加行为可以被有效接入的点。为了使之可用,连接点需要被普通程序员所表达和理解。(为了使应用的某个方面在跨越不连贯的变化时保持稳定,连接点应当在跨越这些变化时稳定
一种指定(或者量化)连接点的方法,称之为“切入点”。切入点决定一个给定的连接点是否匹配。大多数有效的切入点语言使用类似基础语言的语法(例如,AspectJ 使用java符号),并且允许通过命名和组合来实现(切入点)重用(reuse)。
一种指定代码在连接点处运行的方法。在AspectJ中,被称为通知(advice),并且能够在连接点之前、之后或者包围连接点运行。
AOP编程的适用领域
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging 调试
logging, tracing, profiling and monitoring 记录跟踪 优化 校准
Performance optimization 性能优化
Persistence 持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务
评论
huyuhong001
2008-05-12
比较好的Java开源软件汇集介绍的国外网站 ... | JSF命令控件<h:commandLink> action或者ac ... 2007-08-08
AOP基本概念
关键字: AOP
动机和基本概念
声明:这篇文章不是为那些已经了解AOP的人准备的,而是为那些还不解AOP是什么的程序员而写。所以请那些“高手”为那些不了解AOP的人着想一下高抬贵手,不要轻易隐藏或置为入门贴而隐藏,这片文章的主要内容来自于:
http://en.wikipedia.org/wiki/Aspect-oriented_programming
AOP并不是一种新的技术或者新的思想,早在60年代的程序员用模块化编程的时候就开始了这样程序思想。通过将不同的关注封装在不同的模块中来实现“关注分离的目的。我们的程序中有些(方面)的代码是分离的或者缠结在一起的,这使得这些代码难以理解和维护。当一个关注(concern)(比如 记录日志)被分散在很多模块中的时候(比如类和方法),代码是分离的,这意味着改变日志记录需要更改所有受影响的模块。
例如,考虑如下的银行应用中非常简单易懂的,用于从一个账户向另一个账户转账的方法代码:
void transfer(Account fromAccount, Account toAccount, int amount)
{
if (fromAccount.getBalance() < amount)
{
throw new InsufficientFundsException();
}
fromAccount.withdraw(amount);//从一个帐户提款。
toAccount.deposit(amount); //向另一个帐户存款。
}
但是,上面的代码对于现实中的银行应用还远远不够。现实银行应用需要校验当前用户是否有权限执行这个操作的安全性检查。操作应当在数据库事务中进行以防止数据的意外丢失。为了便于诊断系统中出现的问题,这些操作还应当被记录到系统日志中。诸如此类。带有所有这些新“关注”的代码的简单版本如下:
void transfer(Account fromAccount, Account toAccount, int amount)
{
if (!getCurrentUser().canPerform(OP_TRANSFER))
{
throw new SecurityException();
}
if (amount < 0)
{
throw new NegativeTransferException();
}
if (fromAccount.getBalance() < amount)
{
throw new InsufficientFundsException();
}
Transaction tx = database.newTransaction();
try
{
fromAccount.withdraw(amount);
toAccount.deposit(amount);
tx.commit();
systemLog.logOperation(OP_TRANSFER, fromAccount, toAccount, amount);
}
catch(Exception e)
{
tx.rollback();
throw e;
}
}
上面的代码因为新的不同的关注已经同基本的功能(有时候称为业务逻辑关注)缠结在一起,所以已经丧失了优雅性和简单性。事务,安全性和日志记录示范了什么是横切关注(cross-cutting concerns)。
考虑到如果突然需要改变的时候,(例如)应用关于安全性的考虑。在程序的当前版本中,安全相关的操作分散在跨越多个模块的代码中,如果发生变化会产生很大影响。
因此,我们发现“横切关注”没有被正确地封装在它们自己的模块中。这增加了系统的复杂性,并且使系统的升级变得相当困难。
AOP试图通过让编程者在单独的被称之为“切面(aspects)”的模块中表示“横切关注”来解决这个问题。“切面”包含通知(advice,被连接到程序中特定点的代码)和内部类型声明(增加到其他类中的结构性成员)。例如,安全模块可以包含在访问银行账户访问之前来执行安全检查的通知(advice)。切入点(pointcut)定义了连接点银行帐户被访问的时机(连接点,join points),而通知体中的代码定义 “安全保护”如何被实现。这样,检查和替换可以在一个地方维护。进一步讲,一个好的切入点可以参与后续的程序变化,因此如果一个开发者创建了一个新的用于访问银行账户的方法,那么通知可以在执行时被用于这个新建的方法。
连接点(join points):在计算机科学中,“连接点”是连接程序中“控制流程(control flow)”的点。在面向方面的编程中,一系列的连接点集合被描述为“切入点”。连接点是主程序和“方面”的相会之处。在面向对象语言中,连接点是程序执行中定义良好的点。这些点包括方法和构造函数的调用、字段访问以等等内容
切入点(pointcut):在面向方面计算机编程中,切入点是一系列连接点的集合。当程序执行到切入点所描述的其中一个连接点时,与这个切入点相关的代码片(被称为通知)就会被执行。这就使得一个程序员可以描述“何处”以及“何时”在已定义的行为之外去执行附加的代码。这样就能向已经存在的软件增加新的方面(aspects),或者是软件的设计带有清晰的“关注分离(separation of concerns)”的特点,从而使编程者将不同的方面融入到一个完整的应用中。
通知(advice): 在面向方面计算机编程中,一片“通知”描述用于应用于程序中给定连接点的一个函数(function)、方法(method)和过程(procedure) 。
连接点模型(Join point models)
面向方面语言中与通知相关的组件定义了一个连接点模型(join point model-JPM),JPM定义了三件事情:
何时(advice)通知可以运行。之所以叫连接点(join points)是因为它们是正在运行程序中那些附加行为可以被有效接入的点。为了使之可用,连接点需要被普通程序员所表达和理解。(为了使应用的某个方面在跨越不连贯的变化时保持稳定,连接点应当在跨越这些变化时稳定
一种指定(或者量化)连接点的方法,称之为“切入点”。切入点决定一个给定的连接点是否匹配。大多数有效的切入点语言使用类似基础语言的语法(例如,AspectJ 使用java符号),并且允许通过命名和组合来实现(切入点)重用(reuse)。
一种指定代码在连接点处运行的方法。在AspectJ中,被称为通知(advice),并且能够在连接点之前、之后或者包围连接点运行。
AOP编程的适用领域
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
AOP基本概念
关键字: AOP
动机和基本概念
声明:这篇文章不是为那些已经了解AOP的人准备的,而是为那些还不解AOP是什么的程序员而写。所以请那些“高手”为那些不了解AOP的人着想一下高抬贵手,不要轻易隐藏或置为入门贴而隐藏,这片文章的主要内容来自于:
http://en.wikipedia.org/wiki/Aspect-oriented_programming
AOP并不是一种新的技术或者新的思想,早在60年代的程序员用模块化编程的时候就开始了这样程序思想。通过将不同的关注封装在不同的模块中来实现“关注分离的目的。我们的程序中有些(方面)的代码是分离的或者缠结在一起的,这使得这些代码难以理解和维护。当一个关注(concern)(比如 记录日志)被分散在很多模块中的时候(比如类和方法),代码是分离的,这意味着改变日志记录需要更改所有受影响的模块。
例如,考虑如下的银行应用中非常简单易懂的,用于从一个账户向另一个账户转账的方法代码:
void transfer(Account fromAccount, Account toAccount, int amount)
{
if (fromAccount.getBalance() < amount)
{
throw new InsufficientFundsException();
}
fromAccount.withdraw(amount);//从一个帐户提款。
toAccount.deposit(amount); //向另一个帐户存款。
}
但是,上面的代码对于现实中的银行应用还远远不够。现实银行应用需要校验当前用户是否有权限执行这个操作的安全性检查。操作应当在数据库事务中进行以防止数据的意外丢失。为了便于诊断系统中出现的问题,这些操作还应当被记录到系统日志中。诸如此类。带有所有这些新“关注”的代码的简单版本如下:
void transfer(Account fromAccount, Account toAccount, int amount)
{
if (!getCurrentUser().canPerform(OP_TRANSFER))
{
throw new SecurityException();
}
if (amount < 0)
{
throw new NegativeTransferException();
}
if (fromAccount.getBalance() < amount)
{
throw new InsufficientFundsException();
}
Transaction tx = database.newTransaction();
try
{
fromAccount.withdraw(amount);
toAccount.deposit(amount);
tx.commit();
systemLog.logOperation(OP_TRANSFER, fromAccount, toAccount, amount);
}
catch(Exception e)
{
tx.rollback();
throw e;
}
}
上面的代码因为新的不同的关注已经同基本的功能(有时候称为业务逻辑关注)缠结在一起,所以已经丧失了优雅性和简单性。事务,安全性和日志记录示范了什么是横切关注(cross-cutting concerns)。
考虑到如果突然需要改变的时候,(例如)应用关于安全性的考虑。在程序的当前版本中,安全相关的操作分散在跨越多个模块的代码中,如果发生变化会产生很大影响。
因此,我们发现“横切关注”没有被正确地封装在它们自己的模块中。这增加了系统的复杂性,并且使系统的升级变得相当困难。
AOP试图通过让编程者在单独的被称之为“切面(aspects)”的模块中表示“横切关注”来解决这个问题。“切面”包含通知(advice,被连接到程序中特定点的代码)和内部类型声明(增加到其他类中的结构性成员)。例如,安全模块可以包含在访问银行账户访问之前来执行安全检查的通知(advice)。切入点(pointcut)定义了连接点银行帐户被访问的时机(连接点,join points),而通知体中的代码定义 “安全保护”如何被实现。这样,检查和替换可以在一个地方维护。进一步讲,一个好的切入点可以参与后续的程序变化,因此如果一个开发者创建了一个新的用于访问银行账户的方法,那么通知可以在执行时被用于这个新建的方法。
连接点(join points):在计算机科学中,“连接点”是连接程序中“控制流程(control flow)”的点。在面向方面的编程中,一系列的连接点集合被描述为“切入点”。连接点是主程序和“方面”的相会之处。在面向对象语言中,连接点是程序执行中定义良好的点。这些点包括方法和构造函数的调用、字段访问以等等内容
切入点(pointcut):在面向方面计算机编程中,切入点是一系列连接点的集合。当程序执行到切入点所描述的其中一个连接点时,与这个切入点相关的代码片(被称为通知)就会被执行。这就使得一个程序员可以描述“何处”以及“何时”在已定义的行为之外去执行附加的代码。这样就能向已经存在的软件增加新的方面(aspects),或者是软件的设计带有清晰的“关注分离(separation of concerns)”的特点,从而使编程者将不同的方面融入到一个完整的应用中。
通知(advice): 在面向方面计算机编程中,一片“通知”描述用于应用于程序中给定连接点的一个函数(function)、方法(method)和过程(procedure) 。
连接点模型(Join point models)
面向方面语言中与通知相关的组件定义了一个连接点模型(join point model-JPM),JPM定义了三件事情:
何时(advice)通知可以运行。之所以叫连接点(join points)是因为它们是正在运行程序中那些附加行为可以被有效接入的点。为了使之可用,连接点需要被普通程序员所表达和理解。(为了使应用的某个方面在跨越不连贯的变化时保持稳定,连接点应当在跨越这些变化时稳定
一种指定(或者量化)连接点的方法,称之为“切入点”。切入点决定一个给定的连接点是否匹配。大多数有效的切入点语言使用类似基础语言的语法(例如,AspectJ 使用java符号),并且允许通过命名和组合来实现(切入点)重用(reuse)。
一种指定代码在连接点处运行的方法。在AspectJ中,被称为通知(advice),并且能够在连接点之前、之后或者包围连接点运行。
AOP编程的适用领域
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
ltian
2007-10-10
从Java论坛转到入门论坛,扣减十分,在入门论坛再被评为入门文章,再次扣减十分,我算服了JavaEye。
gordon@java
2007-10-09
javachs 写道
这个论坛水太多,潜规则太多,不过还算很不错了,比较严肃,有点追求,我认为aop的实质就是动态代理。
是这个道理,但是话不能这么说,这样就和说soa的实质就是soap一样, 动态代理是aop的一种实现方法, 静态织入也可以实现aop的
myyate
2007-10-09
hax 写道
每个论坛有每个论坛的定位和规则。既可以不认可,你可以不来。来了就要遵守。
JavaEye论坛使用规则
JavaEye论坛是JavaEye网站的技术交流频道,定位在为中高端的软件开发人员,软件项目管理人员以及其他软件中高端从业人员提供严肃的,正式的技术交流场所。JavaEye论坛频道不是为软件新手服务的,也不是为打发无聊时间的人准备的。如果你不是为了学习和交流技术,那么请不要在 JavaEye论坛发言。
JavaEye论坛和其他互联网社区论坛的区别在于:
1)不追求盲目的用户注册数量,拒绝为非目标用户提供服务;
2)不追求盲目的页面点击量,拒绝无效点击给JavaEye服务器添加负担;
3)不追求盲目的低质量文章,拒绝垃圾信息污染JavaEye论坛;
在JavaEye论坛发贴,必须遵守以下服务条款:
一、提问贴必须遵守《JavaEye论坛提问的智慧》
二、技术入门帖子请到《入门讨论》版发贴
凡是基础性的入门问题、或者很容易通过搜索引擎获取的、或者帖子内容已经在JavaEye论坛被充分讨论过,有相应的精华文章做过了总结的,被判定为入门技术帖子,必须发到《入门讨论》版面。违反者将被扣除积分10分,帖子积分被扣除,帖子被转移到《入门讨论》版面。
三、严禁技术文章的全文转载
JavaEye是原创技术社区,严禁全文转载技术文章。违反者将被删除所发帖子,扣除积分30分。如果希望推荐优秀的技术文章到JavaEye论坛进行讨论,只能转载原文不超过30%的内容,以及贴出原文的link地址。
四、严禁无聊灌水性帖子
JavaEye的论坛不是用来灌水的,是用来交流技术的,即使是海阔天空版面,也不意味着你可以随意灌水,凡是言之无物的无聊灌水贴,将被删除,并扣除发贴者积分30分。纯灌水贴请到“JavaEye水源”圈子。请记住JavaEye的论坛是一个严肃的技术交流场所,在这里制造垃圾信息将受到惩罚。
五、严禁对主题贴进行灌水性回复
回贴要言之有物,严禁无聊灌水性回复贴,违反者删除回复贴,扣除积分30分。凡是对主题贴进行灌水性顶贴的,例如“看 看 先”,“顶”,“收 藏 一 下”,“做 个 标 记”,将被删除并扣分。如果你希望收藏该贴,可以点击帖子右上方的收藏按钮,将该帖子收藏到你的博客个人空间里面。
JavaEye论坛使用规则
JavaEye论坛是JavaEye网站的技术交流频道,定位在为中高端的软件开发人员,软件项目管理人员以及其他软件中高端从业人员提供严肃的,正式的技术交流场所。JavaEye论坛频道不是为软件新手服务的,也不是为打发无聊时间的人准备的。如果你不是为了学习和交流技术,那么请不要在 JavaEye论坛发言。
JavaEye论坛和其他互联网社区论坛的区别在于:
1)不追求盲目的用户注册数量,拒绝为非目标用户提供服务;
2)不追求盲目的页面点击量,拒绝无效点击给JavaEye服务器添加负担;
3)不追求盲目的低质量文章,拒绝垃圾信息污染JavaEye论坛;
在JavaEye论坛发贴,必须遵守以下服务条款:
一、提问贴必须遵守《JavaEye论坛提问的智慧》
二、技术入门帖子请到《入门讨论》版发贴
凡是基础性的入门问题、或者很容易通过搜索引擎获取的、或者帖子内容已经在JavaEye论坛被充分讨论过,有相应的精华文章做过了总结的,被判定为入门技术帖子,必须发到《入门讨论》版面。违反者将被扣除积分10分,帖子积分被扣除,帖子被转移到《入门讨论》版面。
三、严禁技术文章的全文转载
JavaEye是原创技术社区,严禁全文转载技术文章。违反者将被删除所发帖子,扣除积分30分。如果希望推荐优秀的技术文章到JavaEye论坛进行讨论,只能转载原文不超过30%的内容,以及贴出原文的link地址。
四、严禁无聊灌水性帖子
JavaEye的论坛不是用来灌水的,是用来交流技术的,即使是海阔天空版面,也不意味着你可以随意灌水,凡是言之无物的无聊灌水贴,将被删除,并扣除发贴者积分30分。纯灌水贴请到“JavaEye水源”圈子。请记住JavaEye的论坛是一个严肃的技术交流场所,在这里制造垃圾信息将受到惩罚。
五、严禁对主题贴进行灌水性回复
回贴要言之有物,严禁无聊灌水性回复贴,违反者删除回复贴,扣除积分30分。凡是对主题贴进行灌水性顶贴的,例如“看 看 先”,“顶”,“收 藏 一 下”,“做 个 标 记”,将被删除并扣分。如果你希望收藏该贴,可以点击帖子右上方的收藏按钮,将该帖子收藏到你的博客个人空间里面。
这些本来是很好的规定,不过加上人为的因素,就显得没有声明的那么严肃了。
realorg
2007-10-08
偶是从网上下的一个电子书,里面只有两章内容。不全
javachs
2007-10-08
这个论坛水太多,潜规则太多,不过还算很不错了,比较严肃,有点追求,我认为aop的实质就是动态代理。
ltian
2007-10-08
夏昕的翻译也可以贴上来,让我们学习下,让更多人受益!
ltian
2007-10-08
Advice之所以翻译为“通知”,完全是因为spring中文翻译文档里面用这个,为了适应更多spring开发者,Advice这个词本身的含义和它在AOP中的含义相差太远,另外时间有限,翻译不好,请各位包涵!
realorg
2007-10-01
Advice: 为何不象夏昕翻译成 处理逻辑 呢?
其实,我觉得人家的翻译还是比较地道的~!
其实,我觉得人家的翻译还是比较地道的~!
hax
2007-09-29
每个论坛有每个论坛的定位和规则。既可以不认可,你可以不来。来了就要遵守。
JavaEye论坛使用规则
JavaEye论坛是JavaEye网站的技术交流频道,定位在为中高端的软件开发人员,软件项目管理人员以及其他软件中高端从业人员提供严肃的,正式的技术交流场所。JavaEye论坛频道不是为软件新手服务的,也不是为打发无聊时间的人准备的。如果你不是为了学习和交流技术,那么请不要在 JavaEye论坛发言。
JavaEye论坛和其他互联网社区论坛的区别在于:
1)不追求盲目的用户注册数量,拒绝为非目标用户提供服务;
2)不追求盲目的页面点击量,拒绝无效点击给JavaEye服务器添加负担;
3)不追求盲目的低质量文章,拒绝垃圾信息污染JavaEye论坛;
在JavaEye论坛发贴,必须遵守以下服务条款:
一、提问贴必须遵守《JavaEye论坛提问的智慧》
二、技术入门帖子请到《入门讨论》版发贴
凡是基础性的入门问题、或者很容易通过搜索引擎获取的、或者帖子内容已经在JavaEye论坛被充分讨论过,有相应的精华文章做过了总结的,被判定为入门技术帖子,必须发到《入门讨论》版面。违反者将被扣除积分10分,帖子积分被扣除,帖子被转移到《入门讨论》版面。
三、严禁技术文章的全文转载
JavaEye是原创技术社区,严禁全文转载技术文章。违反者将被删除所发帖子,扣除积分30分。如果希望推荐优秀的技术文章到JavaEye论坛进行讨论,只能转载原文不超过30%的内容,以及贴出原文的link地址。
四、严禁无聊灌水性帖子
JavaEye的论坛不是用来灌水的,是用来交流技术的,即使是海阔天空版面,也不意味着你可以随意灌水,凡是言之无物的无聊灌水贴,将被删除,并扣除发贴者积分30分。纯灌水贴请到“JavaEye水源”圈子。请记住JavaEye的论坛是一个严肃的技术交流场所,在这里制造垃圾信息将受到惩罚。
五、严禁对主题贴进行灌水性回复
回贴要言之有物,严禁无聊灌水性回复贴,违反者删除回复贴,扣除积分30分。凡是对主题贴进行灌水性顶贴的,例如“看 看 先”,“顶”,“收 藏 一 下”,“做 个 标 记”,将被删除并扣分。如果你希望收藏该贴,可以点击帖子右上方的收藏按钮,将该帖子收藏到你的博客个人空间里面。
JavaEye论坛使用规则
JavaEye论坛是JavaEye网站的技术交流频道,定位在为中高端的软件开发人员,软件项目管理人员以及其他软件中高端从业人员提供严肃的,正式的技术交流场所。JavaEye论坛频道不是为软件新手服务的,也不是为打发无聊时间的人准备的。如果你不是为了学习和交流技术,那么请不要在 JavaEye论坛发言。
JavaEye论坛和其他互联网社区论坛的区别在于:
1)不追求盲目的用户注册数量,拒绝为非目标用户提供服务;
2)不追求盲目的页面点击量,拒绝无效点击给JavaEye服务器添加负担;
3)不追求盲目的低质量文章,拒绝垃圾信息污染JavaEye论坛;
在JavaEye论坛发贴,必须遵守以下服务条款:
一、提问贴必须遵守《JavaEye论坛提问的智慧》
二、技术入门帖子请到《入门讨论》版发贴
凡是基础性的入门问题、或者很容易通过搜索引擎获取的、或者帖子内容已经在JavaEye论坛被充分讨论过,有相应的精华文章做过了总结的,被判定为入门技术帖子,必须发到《入门讨论》版面。违反者将被扣除积分10分,帖子积分被扣除,帖子被转移到《入门讨论》版面。
三、严禁技术文章的全文转载
JavaEye是原创技术社区,严禁全文转载技术文章。违反者将被删除所发帖子,扣除积分30分。如果希望推荐优秀的技术文章到JavaEye论坛进行讨论,只能转载原文不超过30%的内容,以及贴出原文的link地址。
四、严禁无聊灌水性帖子
JavaEye的论坛不是用来灌水的,是用来交流技术的,即使是海阔天空版面,也不意味着你可以随意灌水,凡是言之无物的无聊灌水贴,将被删除,并扣除发贴者积分30分。纯灌水贴请到“JavaEye水源”圈子。请记住JavaEye的论坛是一个严肃的技术交流场所,在这里制造垃圾信息将受到惩罚。
五、严禁对主题贴进行灌水性回复
回贴要言之有物,严禁无聊灌水性回复贴,违反者删除回复贴,扣除积分30分。凡是对主题贴进行灌水性顶贴的,例如“看 看 先”,“顶”,“收 藏 一 下”,“做 个 标 记”,将被删除并扣分。如果你希望收藏该贴,可以点击帖子右上方的收藏按钮,将该帖子收藏到你的博客个人空间里面。
leyen
2007-09-21
我觉得banq可以,我在他网站询问过的每个简单问题都有他的回复,从来也没有说什么太简单之类的话。
在javaeye最郁闷的是我从javaeye某位仁兄那里下了个资料,发条回复感谢了一下,居然被管理员打成灌水,受人恩惠表示下感谢有什么不对?这就是灌水?真服了!
在javaeye最郁闷的是我从javaeye某位仁兄那里下了个资料,发条回复感谢了一下,居然被管理员打成灌水,受人恩惠表示下感谢有什么不对?这就是灌水?真服了!
ltian
2007-09-18
我发现这个网站的有些人的人品很有问题。算得上是“有才无行”的一类人。喜欢攻击bang,说人家是专门忽悠人的,人家只不过在JavaEye之前开了个技术网站,算是同行。诽谤同行只能证明你心虚,说明不了其他的问题。JavaEye网站是一个培训公司旗下的网站,在网站的首页明明有连接和说明,却又有貌似非常了解这个网站内部情况的出来人说JavaEye里面的人不搞培训和培训公司没有关系。这样子的撒谎难道不比忽悠更可耻吗!
gordon@java
2007-09-17
每个人都有自己的价值取向,勉强不来的
java中的runtime dynamic proxy主要是通过
1.java.lang.reflect.Proxy来运行时生成指定interface的实例,
前提是一定要使interface
或者
2.cglib的enhancer运行时生成指定class的子类实例,前提是指定class要有default constructor和非final
在invoke/intercept中是无法直接获得调用者对象(caller object)的,但是可以通过throwable的getstacktrace来获得调用者的类(caller class)信息
java中的runtime dynamic proxy主要是通过
1.java.lang.reflect.Proxy来运行时生成指定interface的实例,
前提是一定要使interface
或者
2.cglib的enhancer运行时生成指定class的子类实例,前提是指定class要有default constructor和非final
在invoke/intercept中是无法直接获得调用者对象(caller object)的,但是可以通过throwable的getstacktrace来获得调用者的类(caller class)信息
kim
2007-09-17
kevin002
2007-09-17
jiyanliang 写道
cjyzpcl 写道
jiyanliang 写道
cjyzpcl 写道
jiyanliang 写道
再补充一句,你们所谓的高手应该向banq学习,不要一味的说这个帖子太简单。
banq是专门忽悠人的,这你都不知道??
为人谁能在哪一方面都强,你拿自己的强项跟别人的弱项比,豪无意义。
中国的很多高手就是这样,一味的轻视别人,不知道自己能为别人做了什么。
整天 简单--扣分
简单--隐藏
还是那句话,咨询是要付钱的对吧,人是要吃饭的对吧。你提了问题别人没有义务回答的。
呵呵,这不就得了。我只是就事论事。你说banq不行,我就拿他来和你比比。
你说得好象和我说的一毛钱也不相关。我发贴什么时候一定要你回的,回帖从来都是自由的吗!
不说了。我只是就事论事,没有其他意思。
或许你就是高手吧!?
难道传说中的高手终于出现了???
jiyanliang
2007-09-16
cjyzpcl 写道
jiyanliang 写道
cjyzpcl 写道
jiyanliang 写道
再补充一句,你们所谓的高手应该向banq学习,不要一味的说这个帖子太简单。
banq是专门忽悠人的,这你都不知道??
为人谁能在哪一方面都强,你拿自己的强项跟别人的弱项比,豪无意义。
中国的很多高手就是这样,一味的轻视别人,不知道自己能为别人做了什么。
整天 简单--扣分
简单--隐藏
还是那句话,咨询是要付钱的对吧,人是要吃饭的对吧。你提了问题别人没有义务回答的。
呵呵,这不就得了。我只是就事论事。你说banq不行,我就拿他来和你比比。
你说得好象和我说的一毛钱也不相关。我发贴什么时候一定要你回的,回帖从来都是自由的吗!
不说了。我只是就事论事,没有其他意思。
或许你就是高手吧!?
cjyzpcl
2007-09-16
jiyanliang 写道
cjyzpcl 写道
jiyanliang 写道
再补充一句,你们所谓的高手应该向banq学习,不要一味的说这个帖子太简单。
banq是专门忽悠人的,这你都不知道??
为人谁能在哪一方面都强,你拿自己的强项跟别人的弱项比,豪无意义。
中国的很多高手就是这样,一味的轻视别人,不知道自己能为别人做了什么。
整天 简单--扣分
简单--隐藏
还是那句话,咨询是要付钱的对吧,人是要吃饭的对吧。你提了问题别人没有义务回答的。
jiyanliang
2007-09-16
cjyzpcl 写道
jiyanliang 写道
再补充一句,你们所谓的高手应该向banq学习,不要一味的说这个帖子太简单。
banq是专门忽悠人的,这你都不知道??
为人谁能在哪一方面都强,你拿自己的强项跟别人的弱项比,豪无意义。
中国的很多高手就是这样,一味的轻视别人,不知道自己能为别人做了什么。
整天 简单--扣分
简单--隐藏
lijie250
2007-09-15
哎!没办法啊,我们要自己解决问题,任何事最好不要指望别人!
kevin002
2007-09-15
在这里经常会遇见什么入门帖这类事,不是隐藏,再不就扣分.好像每个人都是高手一样,再者说了,我要是某些自认为的高手的话就自己写操作系统,自己写X语言了,又何必......
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 26475 次
- 性别:

- 来自: 西安

- 详细资料
搜索本博客
链接
最新评论
-
cairongorm教程
谢谢了
-- by phbzht -
任务定时器quartz开发教程
翻的很詳細,不錯喔
-- by yongli -
Hessian3.1.6目前还不能作 ...
hessian完成了Java对象和ActionScript对象之间的序列化和反序 ...
-- by ltian -
Hessian3.1.6目前还不能作 ...
一直在想 hessian究竟做了什么事情? 应该只属于对POJO的包装,以便于网 ...
-- by cuiyi.crazy -
AOP基本概念
比较好的Java开源软件汇集介绍的国外网站 ... | JSF命令控件<h ...
-- by huyuhong001






评论排行榜