http://download.csdn.net/source/545046

解决方案 »

  1.   

    我有一个简单的例子,给你描述描述,如果你想要源码的话就联系我
    相关包:
    commons-logging-1.0.4.jar
    log4j-1.2.14.jar
    spring.jar
    spring-aop.jar
    aspectjrt.jar
    aspectjweaver.jar
    cglib-nodep-2.1_3.jar
    applicationContext.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"
    xmlns:context="http://www.springframework.org/schema/context"
    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.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:component-scan base-package="*" />
    <aop:aspectj-autoproxy/>
    <bean id="testAspect" class="aspect.TestAspect"/>
    </beans>Aspect的类
    package aspect;import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;import test.User;
    @Aspect
    public class TestAspect {
    @Before("execution(* test.TestBean1.*(..)) &&"+"args(user,..)")  
    public void aspectTest(User user){
    System.out.println("测试 aspect "+user.getCode());
    }
    }
    TestBean1类
    package test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;@Component("bean1")
    public class TestBean1 {
    @Autowired
    private Bean11 bean11;
    public String getString(User user){
    System.out.println("bean1 执行了");
    return "bean1";
    }
    public Bean11 getBean11() {
    return bean11;
    }
    public void setBean11(Bean11 bean11) {
    this.bean11 = bean11;
    }

    }User类
    package test;public class User {
    private String code;
    private String name;
    public String getCode() {
    return code;
    }
    public void setCode(String code) {
    this.code = code;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }

    }
    入口类Mainimport org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import test.TestBean1;
    import test.User;public class Main {
    private TestBean1 bean1;
    public static void main(String[] args) {
    Main main = new Main();
    main.test();
    }
    public void test(){
    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    bean1 = (TestBean1) ctx.getBean("bean1");
    User user = new User();
    user.setCode("001");
    user.setName("aaa");
    System.out.println(bean1.getString(user));
    }}输出结果:
       测试 aspect 001
       bean1 执行了
       bean1
      

  2.   

    applicationContext.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"
    xmlns:context="http://www.springframework.org/schema/context"
    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.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <context:component-scan base-package="*" />
    <aop:aspectj-autoproxy/>
    <bean id="testAspect" class="aspect.TestAspect"/>
    </beans>
      

  3.   

    <?xml version="1.0" encoding="UTF-8"?><!--
    - Application context definition for JPetStore's business layer.
    - Contains bean references to the transaction manager and to the DAOs in
    - dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
    -->
    <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">
               <!--  启用Aspect对annontation的支持 -->
               <aop:aspectj-autoproxy/>
               <!-- 将Aspect和目标对像配置到IOC中来 -->
               <bean id="security" class="com.east.spring.proxy.SecurityHandler"></bean>
               <bean id="userManager" class="com.east.spring.proxy.UserManagerImpl"></bean>
    </beans>-------------
    package com.east.spring.proxy;public interface UserManager {
    public boolean addUser(String name, String password); public boolean deleteUser(int id); public boolean updateUser(int id, String name, String password); public String findUser(int id);
    }
    ----------------------
    package com.east.spring.proxy;
    /**
     * @author:East(张栋芳)
     * @date:Nov 27, 2008
     * @content:在没有进行安全性检查的时候,进行了增,删,查
     */
    public class UserManagerImpl implements UserManager { public boolean addUser(String name, String password) {
    System.out.println("-------------UserManagerImpl.addUser---------------");
    return false;
    } public boolean deleteUser(int id) {
    System.out.println("-------------UserManagerImpl.deleteUser---------------");
    return false;
    } public String findUser(int id) {
    System.out.println("-------------UserManagerImpl.findUser---------------");
    return null;
    } public boolean updateUser(int id, String name, String password) {
    System.out.println("-------------UserManagerImpl.updateUser---------------");
    return false;
    }}