Spring aop 拦截器(即面向切面编程)
来源:互联网 发布:网络尿性的意思 编辑:程序博客网 时间:2024/06/02 04:22
public interface UserService {
public void printUser(String user);
}
package com.saic.grape;
public class UserServiceImp implements UserService{
@Override
public void printUser(String user) {
// TODO Auto-generated method stub
System.out.println("printUser user:" + user);// 显示user
}
}
package com.saic.grape;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
public class UserInterceptor implements MethodInterceptor{
// AOP方法拦截器
@Override
public Object invoke(MethodInvocation arg0) throws Throwable {
try{
if (arg0.getMethod().getName().equals("printUser"))
// 拦截方法是否是UserService接口的printUser方法
{
Object[] args = arg0.getArguments();// 被拦截的参数
System.out.println("user:" + args[0]);
arg0.getArguments()[0] = "hello!";// 修改被拦截的参数
}
System.out.println(arg0.getMethod().getName() + "---!");
return arg0.proceed();// 运行UserService接口的printUser方法
} catch (Exception e) {
throw e;
}
}
}
package com.saic.grape;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class TestInterceptor{
public static void main(String[] args){
ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:aop.xml");
//ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService us = (UserService) ctx.getBean("userService");
us.printUser("ssss");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 业务组件 -->
<bean id="userServiceImp" class="com.saic.grape.UserServiceImp" />
<!-- AOP拦截器(面向切面编程) -->
<bean id="userInterceptor" class="com.saic.grape.UserInterceptor" />
<bean id="userService" class="org.springframework.aop.framework.ProxyFactoryBean">
<!-- 代理接口 -->
<property name="proxyInterfaces">
<value>com.saic.grape.UserService</value>
</property>
<!-- 目标实现类 -->
<property name="target">
<ref local="userServiceImp" />
</property>
<!-- 拦截器 -->
<property name="interceptorNames">
<list>
<value>userInterceptor</value>
</list>
</property>
</bean>
</beans>
- Spring aop 拦截器(即面向切面编程)
- spring面向切面aop拦截器
- Spring AOP 面向切面编程(一)
- Spring实践:面向切面编程(AOP)
- Spring 的面向切面编程(AOP)
- Spring 面向切面(AOP)编程,注解
- Spring面向切面编程AOP(around)
- Spring AOP(面向切面编程)
- Spring核心AOP(面向切面编程)
- Spring---面向切面编程(aop)实例
- Spring之AOP(面向切面编程)
- Spring自定义面向切面编程(AOP)
- Spring之AOP(面向切面编程)
- Spring中的Aop即:面向切面
- spring面向切面编程(aop)
- Spring AOP 面向切面编程
- Spring AOP 面向切面编程
- Spring面向切面编程AOP
- MyEclipse 快捷键
- makefile模板
- Vim命令合集
- 好程序员训练营,让你成为名副其实的好程序员
- 燃烧的三国开发笔记 1
- Spring aop 拦截器(即面向切面编程)
- Python线程通信
- sql 查询行号
- Wildcard Matching
- 解决impala运行时出现的UnicodeEncodeError: 'ascii' codec can't encode characters in position问题
- Eclipse 快捷键
- java--正则表达式学习
- Visual studio 2010出现“error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”解决方案
- hotspot源码(JDK7)-源码结构说明