Spring2.0 AOP使用心得(一)
正在做的项目中有一个类似积分的需求,比如用户在讨论区发帖后,需要给一定的积分这样的需求。因为需求是变化的,同时为了使已经写好的发帖代码不被入侵,所以考虑使用Spring2.0 AOP来实现这个功能。
毕竟是第一次使用Spring2.0的AOP,按照Reference中的介绍,准备使用Annotation来完成对AOP的配置。来看一下我做的步骤:
一、需要使用Spring2.0的jar包,现在已经发布正式版的2.0了,可以从
http://www.springframework.org/
上下载到最新的2.0版本。加入到项目的classpath中去。
二、需要在配置文件中启用新的spring2.0的schema或者是dtd。
1、在Spring的xml配置文件中加入新的schema:
<
beans
xmlns
="http://www.springframework.org/schema/beans"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop
="http://www.springframework.org/schema/aop"
xmlns:tx
="http://www.springframework.org/schema/tx"
xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
default-autowire
="byName"
default-lazy-init
="true"
>
2、“如果使用Java 5的话,推荐使用Spring提供的@AspectJ切面支持,通过这种方式声明Spring AOP中使用的切面。 "@AspectJ"使用了Java 5的注解,可以将切面声明为普通的Java类。”——Spring reference
3、为了使用AOP的Annotation,在配置文件中加入<aop:aspectj-autoproxy />。
4、编写切面类:
@Aspect
public
class
ArticleRemoteAccountsService
{
/** */
/**
* 在发帖成功之后,给用户银币账户冲值
*
*
@param
arg
*
@throws
AccountsException
*
@throws
InstantiationException
*
@throws
IllegalAccessException
*/
@After(
"
execution(* com.company.ArticleManager.saveArticle(..))
"
+
"
&& args(arg)
"
)
public
void
exSilByPost(Article arg)
throws
AccountsException,
InstantiationException, IllegalAccessException
{
if
(arg.getLastUpdateTime()
==
null
&&
arg.getArticleByParentId()
==
null
&&
arg.getArticleByRootId()
==
null
)
{
//
TODO 主题帖
}
else
if
(arg.getLastUpdateTime()
==
null
&&
(arg.getArticleByParentId()
!=
null
||
arg
.getArticleByRootId()
!=
null
))
{
//
TODO 回帖
}
}
}
这里需要注意的是使用Annotation的Poincut语法,
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)
throws
-pattern?)
这里就不累诉了。
同时要注意的如何得到参数的问题,写法参考如上。
posted on 2006-10-20 11:02
旱头憨脑
阅读(967)
评论(0)
编辑
收藏
所属分类:
j2ee
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
Javascript cookie操作攻略
Spring2.0 AOP 心得(二)
Spring2.0 AOP使用心得(一)
Tomcat中,UTF-8 URL提交参数中文解决终极方案
Struts中不限个数上传文件的实现方案
Spring2.0 新特性之Bean新增范围session, request, global session
旱头憨脑
lanluquan
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 1
文章 - 10
评论 - 1
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
■
2006年10月 (1)
文章分类
■
ajax(1)
(rss)
■
j2ee(7)
(rss)
■
java
(rss)
■
ruby(1)
(rss)
■
非技术(1)
(rss)
文章档案
■
2008年6月 (1)
■
2007年9月 (1)
■
2007年7月 (1)
■
2006年10月 (4)
■
2006年9月 (1)
■
2006年8月 (2)
搜索
最新评论
1. re: Hibernate3 父子映射报错:illegal access to loading collection
评论内容较长,点击标题查看
--d