SpringAOP(一)

AOP(Aspect Oriented Program) :面向切面编程

AOP是面向切面编程思想,是对于OOP(面向对象)编程思想的一种扩展,是可以在不直接修改原有代码的基础上,对于原有代码的一种扩展和延伸。

AOP中相关术语:

1.Advice(通知):
需要给目标对象添加的额外逻辑叫做通知。

通知分为:

  • 前置通知(Before):目标方法运行前调用。

  • 后置通知(After):目标方法运行后调用。

  • 返回通知(After-returning):目标方法运行后,返回结果前调用。

  • 异常通知(After-throwing):目标方法出现异常后调用。

  • 环绕通知(Around):目标方法运行前后都要调用。

2.Joinpoint(连接点):
程序中需要动态织入代码的一个点。

3.Pointcut(切点):
会匹配通知所要织入的一个或多个连接点,解决了在哪些类和方法的
连接点上执行通知的问题。

4.Aspect(切面):
切入点和通知的结合。

5.Weaving(织入):
将通知应用到连接点的过程。

基于代理的SpringAOP的使用

  1. 配置代理工厂(ProxyFactoryBean
<!-- 目标对象 --!>
 <bean id="demoDaoTargetBean" class="com.apesource.dao.DemoDAOImpl"/>
 <!-- 通知对象 --!>
 <bean id="logAdviceBean" class="com.apesource.advice.LogAdvice"/>
 <bean id="demoDaoBean" class="org.springframework.aop.framework.ProxyFactoryBean"> 
 		<!-- 注入目标对象 --!>
		<property name="target" ref="demoDaoTargetBean"/>
		<!-- 注入通知对象 --!>
		<property name="interceptorNames">
			<list>
				<value>logAdviceBean</value>
			</list>
		</property>
	</bean>
  1. LogAdvice(通知类)
public class LogAdvice implements MethodBeforeAdvice,AfterReturningAdvice{

	//前置通知方法
	@Override
	public void before(Method method, Object[] args, Object target) throws Throwable {
		System.out.println("------------------前置通知------------------");
	}

	//后置通知方法
	@Override
	public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable {
		System.out.println("------------------后置通知------------------");
	}

3.配置自动代理工厂(BeanNameAutoProxyCreator

<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
		<property name="interceptorNames">
			<list>
				<!-- 注入通知对象 --!>
				<value>logAdviceBean</value>
			</list>
		</property>
		
		<property name="beanNames">
			<list>
				<!-- 通配符匹配目标对象 --!>
				<value>*DaoBean</value>
			</list>
		</property>
	</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值