Spring之AOP XML方式详解编程语言

 

xml方式和Annotation方式差不多,只需改动代理类,和配置文件即可。

package aspect; 
 
import org.aspectj.lang.annotation.After; 
import org.aspectj.lang.annotation.AfterReturning; 
import org.aspectj.lang.annotation.AfterThrowing; 
import org.aspectj.lang.annotation.Around; 
import org.aspectj.lang.annotation.Aspect; 
import org.aspectj.lang.annotation.Before; 
import org.aspectj.lang.annotation.Pointcut; 
 
 
public class UserDaoAspect {  
 
	public void startSay(){  //告知在xml文件中配置为前置通知 
		System.out.println("Good Morning"); 
	} 
	public void endSay(){   //告知在xml文件中配置为后置通知  
		System.out.println("bye bye"); 
	} 
} 

applicationContext.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:p="http://www.springframework.org/schema/p" 
 
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> 
	 
	<bean id="userDao" class="dao.UserDaoImpl" /> 
	 
	<bean id="aspectj" class="aspect.UserDaoAspect"></bean> 
	 
	<aop:config> 
	   <aop:aspect id="myaspectj" ref="aspectj"> 
	      <aop:pointcut expression="execution(* dao..*.*(..))" id="mypointcut"/> 
	      <aop:before method="startSay" pointcut-ref="mypointcut"/><!--  前置通知 --> 
	      <aop:after method="endSay" pointcut-ref="mypointcut"/> <!-- 后置通知 --> 
	   </aop:aspect> 
	</aop:config> 
</beans>

测试类

package test; 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
 
import dao.UserDao; 
import dao.UserDaoImpl; 
 
public class Test { 
 
	/** 
	 * @param args 
	 */ 
	public static void main(String[] args) { 
		// TODO Auto-generated method stub 
		ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); 
		UserDao dao=(UserDao)context.getBean("userDao"); 
		dao.addUser(); 
	} 
 
} 

两种方式效果是一样的

 

 

 

 

 

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14411.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论