您的位置:首页 > 编程语言 > ASP

Spring Aspectj 面向切面示例

2015-12-15 16:49 645 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/u012003601/article/details/50317667

首先导入需要的jar包


其中aspectjweaver的jar包必须是1.5版本以上的,cglib-nodep-2.2的jar包不能与cglib.jar不能共用。


接下来是代码层:

1.自定义注解代码:

package com.springtest.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface LogAnnotation {
String desc() default "";
}

2.自定义切面代码:
package com.springtest.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

import com.springtest.annotation.LogAnnotation;

@Component
@Aspect
public class AspectLog {
@AfterReturning("within(com.springtest.test.MainTestService) && @annotation(la)")
public void aspectTest(JoinPoint joinpoint, LogAnnotation la){
System.out.println("this is aspectlog infomation");
System.out.println(la.desc());
}
}
3.应用自定义注解的代码:

package com.springtest.test;

import com.springtest.annotation.LogAnnotation;

public class MainTestService {
@LogAnnotation(desc=("this is pass infotation"))
public void test(){
System.out.println("this is before test");
}
}

4.最后这是测试的实现代码:

package com.springtest.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TryTest {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
MainTestService mainTestService = (MainTestService) ctx.getBean("mainTestService",MainTestService.class);
mainTestService.test();
}
}

5.spring的配置文件为

<?xml version="1.0" encoding="UTF-8"?>
<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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<aop:aspectj-autoproxy />
<context:component-scan base-package="com.springtest" />
<bean id="mainTestService" class="com.springtest.test.MainTestService">
</bean>
</beans>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: