首页 > 代码库 > Spring之AOP实现面向切面编程
Spring之AOP实现面向切面编程
近期在学Java的动态代理和Spring面向切面编程,越来越认为Spring设计的真的是太完美了。于是,想一个最简单的样例来跑一下。但问题多多,显示缺少,Aspectj里面的相应的类。导入Aspectj.jar呗。可是装Aspectj.jar跟一般的导入.jar不一样,还须要安装并改动Path变量,加入安装文件夹下的bin文件夹到PATH中,并将安装文件夹下lib文件夹里的.jar文件导入MyEclipse。然后,又出现了NoSuchMethodError: net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z)V错误。于是又找cglib.jar包,导入.jar包,依旧是相同的错误。搜了搜。原来是应该导入cglib-nodep-2.1_3.jar而不是cglib2.jar,导入完毕,问题解决。bravo!
//AOPTest.java
package com.spring.aop; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class AOPTest { public static void main(String[] args) { // TODO Auto-generated method stub ApplicationContext ctx=new ClassPathXmlApplicationContext("aop.xml"); Consume consume=(Consume)ctx.getBean("consume"); consume.consumeService(); } }
//Consume.java
package com.spring.aop; public class Consume { public void consumeService() { System.out.println("The food is delicious!"); } }
package com.spring.aop; public class Service { public void beforConsume() { System.out.println("Before consume!"); } public void afterConsume() { System.out.println("After consume!"); } }
//配置文件
<?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:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <bean name="service" class="com.spring.aop.Service"/> <bean name="consume" class="com.spring.aop.Consume"/> <aop:config> <aop:aspect ref="service"> <aop:pointcut id="consumeService" expression="execution(* *.consumeService(..))" /> <aop:before pointcut-ref="consumeService" method="beforConsume"/> <aop:after pointcut-ref="consumeService" method="afterConsume"/> </aop:aspect> </aop:config> </beans>
Spring之AOP实现面向切面编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。