spring development using XML configuration Spring AOP

   XML way to develop AOP and annotations development principles are the same, so here mainly to introduce some uses. It should be introduced AOP namespace in XML, so first look at the elements AOP configurable


  Listing: cut class
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 ......");
    }

}

  Without any notes, which means that we need to use XML to describe them the whereabouts of the Spring IoC container.



  Listing: 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="by a " </>
            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>

 



  Listing: Test class
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 (roller);
    }

}

 



Guess you like

Origin www.cnblogs.com/ooo0/p/11018752.html