1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > spring 使用XML配置开发Spring AOP

spring 使用XML配置开发Spring AOP

时间:2019-04-23 05:33:25

相关推荐

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="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context" xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-4.0.xsd/schema/context /schema/context/spring-context-4.0.xsd/schema/aop /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);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。