spring aop 简单实例

来源:互联网 发布:开票软件为什么打不开 编辑:程序博客网 时间:2024/06/01 23:06

1。导入spring  所需要的包

2 web.xml

添加

<!-- spring 配置 -->
  <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:applicationContext-*.xml
        </param-value>
   </context-param>
     <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

注解方式:

定义一个接口

public interface SpringDao {
    //添加
    public   void  addstudent()throws  Exception;
    //删除
    public  void   deletestudent()throws  Exception;
}


实现类

public class SpringTest implements  SpringDao {

    @Override
    public void addstudent() throws Exception {
        // TODO Auto-generated method stub
        System.out.println("添加");
    }
    @Override
    public void deletestudent() throws Exception {
        // TODO Auto-generated method stub
        System.out.println("删除");
    }
}

定义一个切面


@Aspect
public class SpringAop {
    
    @Pointcut("execution(* add(..))")
    public void shows(){};
    @Before("shows()")
    public void show(){
        System.out.println("----------------------");
    }
}


把spring配置文件到进入

  <aop:aspectj-autoproxy></aop:aspectj-autoproxy>  //开启注解
  <bean id="SpringAop" class="springtest.SpringAop"></bean>
  <bean id="springdao" class="springtest.SpringTest"></bean>


测试类:

public class SpringTestAop {
    
    public static void main(String[]args) throws Exception{
        BeanFactory   be = new ClassPathXmlApplicationContext(new String[]{"applicationContext-bean.xml"});
        SpringDao  dao =(SpringDao) be.getBean("springdao");
        dao.deletestudent();
    }
}


使用静态文件

<bean id="SpringAop" class="springtest.SpringAop"></bean>
  <bean id="springdao" class="springtest.SpringTest"></bean>
 
  <aop:config>
     <aop:aspect id ="sp" ref="SpringAop">
        <aop:pointcut id="shows"  expression="execution(* springtest.SpringTest.add*(..))"/>
        <aop:before method="show()" pointcut-ref="shows"/>
     </aop:aspect>
  </aop:config>


只需要把注解都去掉

@Aspect
public class SpringAop {
    
    @Pointcut("execution(* add(..))")
    public void shows(){};
    @Before("shows()")
    public void show(){
        System.out.println("----------------------");
    }
}








0 0
原创粉丝点击