aop实现
来源:互联网 发布:sql update在哪用 编辑:程序博客网 时间:2024/06/14 13:27
代理分JDK动态代理(代理接口)和CGLIB代理(代理具体类),CGLIB代理是目标对象的子类
aop代理就是由aop框架动态生成的一个对象,spring的aop代理大都由ProxyFactoryBean工厂类产生,配置ProxyFactoryBean需要如下两个属性:1.代理的目标对象 2.处理(Advice)
一、代理接口
实例:基于AOP的权限认证
1.Service组件接口
public interface TestService
{
void view();
void modify();
}
2.Service接口实现类
public class TestServiceImpl implements TestService
{
public void view()
{
System.out.println("查看数据");
}
public void modify()
{
System.out.println("修改数据");
}
}
3.拦截器类
public class AuthorityInterceptor implements MethodInterceptor
{
private User user;
public void setUser(User user)
{
this.user=user;
}
//必需实现的方法
public Object invoke(MethodInvocation invocation) throws Throwable
{
String methodName=invocation.getMethod().getName();
if(!user.equals("admin) && !user.equals("registedUser"))
{
System.out.println("您无权查看");
return null;
}
else if(user.equals("registedUser") && methodName.equals("modify))
{
System.out.println("您不是管理员,无权修改");
return null;
}
else
{
return invocation.proceed();
}
}
//1.配置目标bean
<bean id="serviceTarget" class="com.lhb.TestServiceImpl"/>
//2.配置拦截器
<bean id="authorityInterceptor" class="com.lhb.AuthorityInterceptor">
<property name="user" value="admin"/>
</bean>
//3.配置代理工厂Bean,产生aop代理
<bean id="service" class="org.springframework.aop.framework.ProxyFactoryBean">
//4.指定aop代理所实现的接口
<property name="proxyInterfaces" value="com.lin.TestService"/>
//5.指定aop代理所代理的目标bean
<property name="target" ref="serviceTarget"/>
//6.指定aop代理所需要的拦截器列表
<property name="interceptorNames">
<list>
<value>authorityInterceptor</value>
</list>
</property>
</bean>
- AOP实现
- aop实现
- AOP实现
- AOP实现
- aop实现
- aop实现
- spring(AOP) 注解实现aop
- aop实现-spring2.0中的aop实现
- 注解实现AOP AOP编程 XML实现AOP
- 用Jdk实现AOP
- Spring的AOP实现
- Aspectwerkz动态实现AOP
- cglib_dynamicProxy实现aop
- 我的AOP实现
- Unity 实现 AOP
- C# AOP实现
- 用ASM实现AOP
- AspectJ如何实现AOP
- C# Lock
- python 列表,数组,矩阵两两转换tolist()
- 设计模式---简单工厂模式
- 在 Linux 命令行中使用和执行 PHP 代码(二):12 个 PHP 交互性 shell 的用法
- 类似手机影院选座HTML,CSS源码
- aop实现
- Preference 系统自带的偏好设置页面解析
- kernel.sem 参数设置
- Listview的性能优化与viewholder是否需要设置成static
- zabbix安装参考
- Android Studio快捷键
- Android顶部布局View不随着输入框弹出而上移
- java基础复习-数据类型
- 在 Linux 命令行中使用和执行 PHP 代码(一)