第一种配置方法 使用@AspectJ标签
在配置文件中添加注解
创建一个Java文件 使用@Aspect注解修饰该类
创建一个方法 使用@Before @After @Around等进行修饰 在注解中写上切入点的表达式
说明 上述Java文件创建好后 需要将其在Spring的容器中进行声明 可以在配置文件中定义节点 也可以使用@Component组件进行修饰
Java代码
import aspectj lang ProceedingJoinPoint
import aspectj lang annotation After
import aspectj lang annotation AfterThrowing
import aspectj lang annotation Around
import aspectj lang annotation Aspect
import aspectj lang annotation Before
import springframework stereotype Component
/**
* 基于注解的AOP日志示例
* @author ZYWANG
*/
@Component
@Aspect
public class AopLog {
//方法执行前调用
@Before( execution (* zywang services impl * *( )) )
public void before() {
System out println( before )
}
//方法执行后调用
@After( execution (* zywang services impl * *( )) )
public void after() {
System out println( after )
}
//方法执行的前后调用
@Around( execution (* zywang services impl * *( )) )
public Object around(ProceedingJoinPoint point) throws Throwable{
System out println( begin around )
Object object = point proceed()
System out println( end around )
return object
}
//方法运行出现异常时调用
@AfterThrowing(pointcut = execution (* zywang services impl * *( )) throwing = ex )
public void afterThrowing(Exception ex){
System out println( afterThrowing )
System out println(ex)
}
}
上面这段代码中多次使用了重复的切入点 这种情况下 可以使用@Pointcut标注 来修改一个切入点方法(这个方法不需要参数和方法体) 然后就可以在@Before等标注中引用该方法作为切入点 示例如下
Java代码
import aspectj lang ProceedingJoinPoint
import aspectj lang annotation Around
import aspectj lang annotation Aspect
import aspectj lang annotation Before
import aspectj lang annotation Pointcut
import springframework stereotype Component
/**
* 基于注解的AOP日志示例
* @author ZYWANG
*/
@Component
@Aspect
public class AopLog {
@Pointcut( execution (* iflysse school services impl * *( )) )
public void pointcut(){}
//方法执行前调用
@Before( pointcut() )
public void before() {
System out println( before )
}
//方法执行的前后调用
@Around( pointcut() )
public Object around(ProceedingJoinPoint point) throws Throwable{
System out println( begin around )
Object object = point proceed()
System out println( end around )
return object
}
}
第二种配置方法 基于配置文件的配置
创建一个Java文件 并指定一个用于执行拦截的方法 该方法可以有 个或多个参数
在Spring配置文件中注册该Java类为一个Bean
使用 等标签进行配置
示例
Java文件
Java代码
import aspectj lang ProceedingJoinPoint
/**
* 基于配置文件的AOP日志示例
* @author ZYWANG
*/
public class AopLog {
//方法执行的前后调用
public Object runOnAround(ProceedingJoinPoint point) throws Throwable{
System out println( begin around )
Object object = point proceed()
System out println( end around )
return object
}
}
Spring配置文件
Xml代码
注意 上面这个示例使用的是around方式的拦截 该方法要求Java类中的方法有一个ProceedingJoinPoint类型的参数
lishixinzhi/Article/program/Java/ky/201311/28907
我们使用eclipse编辑spring配置文件时 经常没有提示 而无从下手时 现在我们就来解决没有提示的问题
原因是因为eclipse中没有配置xsd文件
步骤一 把如下头文件拷贝到你的spring配置文件中
<?xml version= encoding= UTF ?>
<beans xmlns=
xmlns:xsi= instance
xmlns:aop=
xmlns:tx=
xmlns:jdbc=
xmlns:context=
xmlns:util=
xsi:schemaLocation= context xsd
beans xsd
jdbc xsd
tx xsd
aop xsd
util xsd >
</beans>
步骤二 根据头文件的中的链接点击去下载spring对应版本的 xsd文件 到本地
步骤三 下载好之后 接下来就是要添加到eclipse中
在eclipse菜单中进入
window >prefernces >XML >XML Catalog >Add >File System 然后选择刚才下载下来的 xsd文件
location:比如C:\spring beans xsd
key type:选择Schema Location
key:填写/schema/beans/spring beans xsd
lishixinzhi/Article/program/Java/ky/201311/28723
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)