Spring AOP

Spring AOP名词应用

cross cutting corner :横切关注点。代表要在业务方法前后执行的一些业务逻辑(如权限验证、日志处理)
advice:对横切关注点的具体实现叫advice(通知).
Aspect:切面,代表advice的模块化(其实就是advice所在类)
Pointcut:切入点,其实就是在哪些类的哪些方法前后调用advice.
joinpoint:连接点,即方法调用。【有切入点】
weave:织入,就是将advice如何放到目标对象上。
target:即advice所应用的对象。


AOP切面的定义

//AOP动态代理切面的定义
public class UserHandler {
	
	public void before(){
		System.out.println("------------方法开始执行-------------");
	}
	public void after(){
		System.out.println("-------------方法执行完毕-----------");
	}
	
}

applicationContext.xml文件中定义切入点及切面

<!-- 定义切入点及切面 -->
	<bean id="userDao" class="com.mingde.dao.UserDao"/>
	<bean id="userHandler" class="com.mingde.handler.UserHandler" ></bean>
	<aop:config>
		<!-- 配置切入点 (在任意dao类任意方法中切入代码) -->
		<aop:pointcut expression="execution(* com.mingde.dao.*.*(..))" id="pointcut1"/>
		<!-- 配置切面 -->
		<aop:aspect ref="userHandler">
			<!-- 配置在任何dao方法调用前执行userHandler类的before()方法 -->
			<aop:before method="before" pointcut-ref="pointcut1" />
			<!-- 配置在任何dao方法调用后执行userHandler类的after()方法 -->
			<aop:after-returning method="after" pointcut-ref="pointcut1" />
		</aop:aspect>
	</aop:config>


测试AOP动态代理功能

@org.junit.Test
	public void test2() {
		ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
		IUserDao userDao=(IUserDao) ac.getBean("userDao");
		userDao.delete(12);
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值