需要用到的jar包:
1.XML方式实现:
package com.linuxidc.post; public class Intermediary { public void post(){ System.out.println("该房源已发布!"); } }
package com.linuxidc.service; public interface Rent { public void rent(); }
package com.linuxidc.service.impl; import com.linuxidc.service.Rent; public class Landlord implements Rent{ @Override public void rent() { System.out.println("房东:我要出租房子了!"); } }
package com.linuxidc.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.linuxidc.service.Rent; public class Test { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml"); Rent r = ac.getBean(Rent.class); try { r.rent(); } catch (Exception e) { e.printStackTrace(); } } }
beans.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.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 目标对象 --> <bean id="rent" class="com.linuxidc.service.impl.Landlord"/> <!-- 切面 --> <bean id="intermediary" class="com.linuxidc.post.Intermediary"/> <aop:config> <aop:aspect ref="intermediary"> <aop:before method="post" pointcut-ref="pointcut"/> <aop:pointcut id="pointcut" expression="execution(* com.linuxidc.service.impl.*.*(..))" /> </aop:aspect> </aop:config> </beans>
2.注解方式:
package com.linuxidc.post; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @Aspect public class Intermediary { @Before("execution(* com.linuxidc.service.impl.*.*(..))") public void post(){ System.out.println("该房源已发布!"); } }
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.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 目标对象 --> <bean id="rent" class="com.linuxidc.service.impl.Landlord"/> <!-- 切面 --> <bean id="intermediary" class="com.linuxidc.post.Intermediary"/> <!-- 自动代理 --> <aop:aspectj-autoproxy/> </beans>
测试类:
package com.linuxidc.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.linuxidc.service.Rent; public class Test { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); Rent r = ac.getBean(Rent.class); try { r.rent(); } catch (Exception e) { e.printStackTrace(); } } }
Spring AOP四种实现方式 http://www.linuxidc.com/Linux/2016-10/135993.htm
Spring AOP自定义注解方式实现日志管理 http://www.linuxidc.com/Linux/2015-11/125019.htm
Spring AOP进行日志记录 http://www.linuxidc.com/Linux/2015-11/124731.htm
Spring AOP与Redis搭建缓存 http://www.linuxidc.com/Linux/2016-12/138337.htm
利用Spring AOP 更新Memcached 缓存策略的实现 http://www.linuxidc.com/Linux/2012-03/56503.htm
Spring AOP的两种代理 http://www.linuxidc.com/Linux/2015-11/125017.htm
Spring AOP的注解实例 http://www.linuxidc.com/Linux/2015-11/125018.htm
Spring AOP 简介以及简单用法 http://www.linuxidc.com/Linux/2016-12/138188.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141482.htm