Spring2.0 AOP学习案例笔记

来源:互联网 发布:mac如何将两个窗口 编辑:程序博客网 时间:2024/06/08 10:26

(1) Aspect.xml

xml代码:

<?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" 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.0.xsd"> <bean id="someMethod" class="com.jpo.aspect.SomeMethodImpl"></bean> <bean id="myAspect" class="com.jpo.aspect.MyAspect"></bean> <aop:aspectj-autoproxy /></beans>


(2) Java Bean

SomeMethod.java

public interface SomeMethod {public void someMethod();}

SomeMethodImpl.java

public class SomeMethodImpl implements SomeMethod {public void someMethod() {System.out.println("Hello Kitty!");System.out.println(SomeMethod.class);}}


MyAspect.java

package com.aspectimport org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Pointcut;@Aspectpublic class MyAspect {@Pointcut("execution(* com.aspect..*.*(..))")public void myPointCut(){}@Around("myPointCut()")public Object aoundMethod(ProceedingJoinPoint joinpoint) throws Throwable{System.out.println("method Start!");Object obj=joinpoint.proceed();System.out.println("method End!");return obj;}}

Main.java

import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {public static void main(String[] args) throws Throwable {ApplicationContext ctx=new ClassPathXmlApplicationContext("Aspect.xml");SomeMethod somemethod=(SomeMethod)ctx.getBean("someMethod");somemethod.someMethod();System.out.println(somemethod.getClass().getName());}}






 

原创粉丝点击