当前位置: 首页 >Java技术 > 做一个合格的程序猿之浅析Spring AOP源码(十七) Spring AOP开发大作战

做一个合格的程序猿之浅析Spring AOP源码(十七) Spring AOP开发大作战

前面AOP几节我们已经浅析了Spring 是如何实现AOP的,和AOP的底层原理,那么今天我们先来看看我们开发环境中是怎么运用AOP的


好了,我们先定义一个简单的应用场景,在web开发中,mvc模式中,我们的有些核心service的某些方法是需要打logger的,现在我们例如AOP,将打logger的事情给AOP去做


先定义个service接口

package org.study.spring.aop.base.xml;public interface BussinessService {		void doSomething();}

具体实现:

package org.study.spring.aop.base.xml;public class BussinessServiceImpl implements BussinessService{	public void doSomething() {		System.out.println("BussinessServiceImpl do something");	}}

通知(advice):

package org.study.spring.aop.base.xml;import org.aspectj.lang.JoinPoint;public class LoggerAspect {		public void doBefore(JoinPoint jp) {  		System.out.println("log Begining method: " + jp.getTarget().getClass().getName() + "." + jp.getSignature().getName());  } }

spring的配置文件

<?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/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">  <aop:config> <!-- 用什么切 --><aop:aspect id="TestAspect" ref="aspectBean"><!-- 在那个地方切 --><aop:pointcut id="busssinessPointcut" expression="execution(* org.study.spring.aop.base.xml.*.*(..))" /><!-- 什么时候切 --><aop:before pointcut-ref="busssinessPointcut" method="doBefore"/>  </aop:aspect>  </aop:config><bean id="aspectBean" class="org.study.spring.aop.base.xml.LoggerAspect" />  <bean id="bussinessServiceImpl" class="org.study.spring.aop.base.xml.BussinessServiceImpl"></bean>  </beans>

测试代码

package org.study.spring.aop.base.xml;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations ="classpath*:spring-aop.xml")public class TestXmlAop {	@Resourceprivate BussinessService bussinessService;		@Test	public void testAop() throws Exception{	bussinessService.doSomething();		 	}}

测试结果:

做一个合格的程序猿之浅析Spring AOP源码(十七) Spring AOP开发大作战 _ JavaClub全栈架构师技术笔记







作者:BazingaLyncc
来源链接:https://blog.csdn.net/linuu/article/details/50981408

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/java/113082.html

标签:SpringAOP
分享给朋友:

“做一个合格的程序猿之浅析Spring AOP源码(十七) Spring AOP开发大作战” 的相关文章

Dubbo原理浅析 2022年05月15日 21:53:58
SpringBoot日志框架 2022年05月16日 19:52:50
SpringCloud基本原理 2022年05月16日 20:38:15
深入理解 Java 并发锁 2022年05月17日 20:52:45
小白快速入门|springcloud系列之 2022年05月27日 21:31:25
并发编程|彻底搞懂volatile 2022年05月27日 21:51:40
SpringBoot整合 mybatisPlus 2022年05月27日 21:55:24