zoukankan      html  css  js  c++  java
  • spring 组件扫描和切面配置

    applicationContext-aop.xml

        <!-- 自动扫描的包 -->
        <context:component-scan base-package="com.atguigu.spring.aop"></context:component-scan>
    
        <!-- 使 AspectJ 的注解起作用 -->
        <aop:aspectj-autoproxy></aop:aspectj-autoproxy>

    applicationContext-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.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
    
        <!-- 配置 bean -->
        <bean id="arithmeticCalculator" 
            class="com.atguigu.spring.aop.xml.ArithmeticCalculatorImpl"></bean>
    
        <!-- 配置切面的 bean. -->
        <bean id="loggingAspect"
            class="com.atguigu.spring.aop.xml.LoggingAspect"></bean>
    
        <bean id="vlidationAspect"
            class="com.atguigu.spring.aop.xml.VlidationAspect"></bean>
    
        <!-- 配置 AOP -->
        <aop:config>
            <!-- 配置切点表达式 -->
            <aop:pointcut expression="execution(* com.atguigu.spring.aop.xml.ArithmeticCalculator.*(int, int))" 
                id="pointcut"/>
            <!-- 配置切面及通知 -->
            <aop:aspect ref="loggingAspect" order="2">
                <aop:before method="beforeMethod" pointcut-ref="pointcut"/>
                <aop:after method="afterMethod" pointcut-ref="pointcut"/>
                <aop:after-throwing method="afterThrowing" pointcut-ref="pointcut" throwing="e"/>
                <aop:after-returning method="afterReturning" pointcut-ref="pointcut" returning="result"/>
                <!--  
                <aop:around method="aroundMethod" pointcut-ref="pointcut"/>
                -->
            </aop:aspect>    
            <aop:aspect ref="vlidationAspect" order="1">
                <aop:before method="validateArgs" pointcut-ref="pointcut"/>
            </aop:aspect>
        </aop:config>
    
    </beans>
  • 相关阅读:
    面向对象案例
    Leetcode--9. 回文数
    调试seanbell/intrinsic遇到的坑
    Ubuntu16.04OPENGL初体验
    Ubuntu16.04重装NVIDIA驱动
    C++之封装继承和多态
    CMKAE简单实用指南
    【学习笔记】C/C++
    C++之重载覆盖和隐藏
    C++之指针和引用
  • 原文地址:https://www.cnblogs.com/lxh520/p/8885477.html
Copyright © 2011-2022 走看看