Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解

简介: 这篇文章是Spring5框架的AOP切面编程教程,通过XML配置方式,详细讲解了如何创建被增强类和增强类,如何在Spring配置文件中定义切入点和切面,以及如何将增强逻辑应用到具体方法上。文章通过具体的代码示例和测试结果,展示了使用XML配置实现AOP的过程,并强调了虽然注解开发更为便捷,但掌握XML配置也是非常重要的。

地址链接:
使用完全注解开发实现AOP

上一篇写了如何使用注解实现Aop切面编程、这一篇使用xml方式实现aop切面编程。通过对比、可以有效看出两者之间的方便程度

1、创建两个类,增强类和被增强类,创建方法

1.1 被增强类Dog.java

对这个类里的方法进行增强

/**
 * @author Lenovo
 * @version 1.0
 * @data 2022/10/23 14:58
 */
public class Dog {

    public void show(){
        System.out.println("我是小狗旺财。。。。");
    }
}

1.2 增强类DogProxy.java

/**
 * @author Lenovo
 * @version 1.0
 * @data 2022/10/23 14:59
 */
public class DogProxy {
    public void before(){
        System.out.println("我是提前执行的、我是一只黑色的小狗。。。。");
    }
}

2、在 spring 配置文件中创建两个类对象

<!--创建对象-->
<bean id="dog" class="com.zyz.spring5.aopxml.Dog"></bean>
<bean id="dogProxy" class="com.zyz.spring5.aopxml.DogProxy"></bean>

3、在 spring 配置文件中配置切入点

有关切入点、切面等术语的讲解。上一篇有专门的讲解。这里不在赘述。开头的链接

    <!--配置增强-->
    <aop:config >
        <!--切入点-->
        <aop:pointcut id="p" expression="execution(* com.zyz.spring5.aopxml.Dog.show(..))"/>
        <!--配置切面-->
        <aop:aspect ref="dogProxy">
            <!--增强作用在具体的方法上-->
            <aop:before method="before" pointcut-ref="p"></aop:before>
        </aop:aspect>
    </aop:config>

4、测试

    @org.junit.Test
    public void testDemo2(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        Dog dog = context.getBean("dog", Dog.class);
        dog.show();

    }

5、测试结果

在这里插入图片描述

6、后语

还是注解开发爽、实际中也是注解开发的多。你可以不用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:context="http://www.springframework.org/schema/context"
       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/context http://www.springframework.org/schema/context/spring-context.xsd
                            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

    <!--创建对象-->
    <bean id="dog" class="com.zyz.spring5.aopxml.Dog"></bean>
    <bean id="dogProxy" class="com.zyz.spring5.aopxml.DogProxy"></bean>

    <!--配置增强-->
    <aop:config >
        <!--切入点-->
        <aop:pointcut id="p" expression="execution(* com.zyz.spring5.aopxml.Dog.show(..))"/>
        <!--配置切面-->
        <aop:aspect ref="dogProxy">
            <!--增强作用在具体的方法上-->
            <aop:before method="before" pointcut-ref="p"></aop:before>
        </aop:aspect>
    </aop:config>


</beans>
相关文章
|
20天前
|
XML Java 数据安全/隐私保护
Spring Aop该如何使用
本文介绍了AOP(面向切面编程)的基本概念和术语,并通过具体业务场景演示了如何在Spring框架中使用Spring AOP。文章详细解释了切面、连接点、通知、切点等关键术语,并提供了完整的示例代码,帮助读者轻松理解和应用Spring AOP。
Spring Aop该如何使用
|
25天前
|
Java Spring
[Spring]aop的配置与使用
本文介绍了AOP(面向切面编程)的基本概念和核心思想。AOP是Spring框架的核心功能之一,通过动态代理在不修改原代码的情况下注入新功能。文章详细解释了连接点、切入点、通知、切面等关键概念,并列举了前置通知、后置通知、最终通知、异常通知和环绕通知五种通知类型。
30 1
|
21天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
31 0
|
2月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
61 1
|
4月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
20天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
74 8
|
6月前
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容
|
6月前
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
|
2月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
26 3
|
2月前
|
XML 存储 缓存
C#使用XML文件的详解及示例
C#使用XML文件的详解及示例
97 0