spring 使用XML配置开发Spring AOP

Posted ooo0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 使用XML配置开发Spring AOP相关的知识,希望对你有一定的参考价值。

   XML方式开发AOP与注解开发原理是相同的,所以这里主要介绍一些用法即可。这里需要在XML中引入AOP的命名空间,所以先来了解一下AOP可配置的元素
技术图片

  代码清单:切面类
package com.ssm.chapter11.xml.aspect;

public class XmlAspect 

    public void before() 
        System.out.println("before ......");
    

    public void after() 
        System.out.println("after ......");
    

    public void afterThrowing() 
        System.out.println("after-throwing ......");
    

    public void afterReturning() 
        System.out.println("after-returning ......");
    

  没有任何的注解,这就意味着需要我们使用XML去向Spring IoC容器描述它们。



  代码清单:spring-cfg4.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-4.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">

    <bean id="xmlAspect" class="com.ssm.chapter11.xml.aspect.XmlAspect"/>
    <bean id="roleService" class="com.ssm.chapter11.xml.service.impl.RoleServiceImpl"/>

    <aop:config>
        <!-- 引用xmlAspect作为切面 -->
        <aop:aspect ref="xmlAspect">
            <!-- 定义切点 -->
            <aop:pointcut id="printRole" expression="execution(* com.ssm.chapter11.xml.service.impl.RoleServiceImpl.printRole(..))"/>
            <!-- 定义通知,引入切点 -->
            <aop:before method="before" pointcut-ref="printRole"/>
            <aop:after method="after" pointcut-ref="printRole"/>
            <aop:after-throwing method="afterThrowing" pointcut-ref="printRole"/>
            <aop:after-returning method="afterReturning" pointcut-ref="printRole"/>

            <aop:around method="around" pointcut-ref="printRole"/>
        </aop:aspect>
    </aop:config>


</beans>

 



  代码清单:测试类
public class Main 

    public static void main(String[] args) 
        ApplicationContext ctx = new ClassPathXmlApplicationContext("ssm/chapter11/spring-cfg4.xml");
        RoleService roleService = ctx.getBean(RoleService.class);
        Role role = new Role();
        role.setId(1L);
        role.setRoleName("role_name_1");
        role.setNote("note_1");
        roleService.printRole(role);
    

 



以上是关于spring 使用XML配置开发Spring AOP的主要内容,如果未能解决你的问题,请参考以下文章

Spring AOP

spring 使用XML配置开发Spring AOP

Spring xml配置bean

spring配置使用xml还是注解好

spring xml配置方式 笔记

spring开发之注解基础(半注解半xml)