WEB开发网
开发学院软件开发Java Spring原理自我实践之AOP的实现原理 阅读

Spring原理自我实践之AOP的实现原理

 2009-09-18 00:00:00 来源:WEB开发网   
核心提示:AOP的简单描述: 面向切面的编程,针对系统中与核心业务关系不是那么紧密的功能,Spring原理自我实践之AOP的实现原理, 诸如事务、安全验证、日志等,通过一种机制,将他们分离, 这样能够减弱代码的耦合

AOP的简单描述:

面向切面的编程,针对系统中与核心业务关系不是那么紧密的功能。 诸如事务、安全验证、日志等,通过一种机制,将他们分离, 这样能够减弱代码的耦合 ,使逻辑可以清晰分离

实现的方式有三种:

1.编译期间,由java文件生成class文件过程中加入

2.类加载器,由class文件加载到内存过程中加入

3.动态代理和cglib

主要的源码:

Java代码   

package com.erong.spring.aop.myaop; 
 
import java.lang.reflect.Method; 
 
import org.springframework.aop.MethodBeforeAdvice; 
import org.springframework.aop.framework.ProxyFactory; 
 
 
public class Main { 
 
 /**实例说明: 
 * 通过AOP对模拟系统的注册和登录生成日志打印在控制台 
 * 每次调用到creat()和login()都会生成日志 
 * 在代码中没有任何的日志代码 
 * @param args 
 */ 
 public static void main(String[] args) { 
 
 UserDao userDao = new UserDao(); 
 UserServiceImpl target = new UserServiceImpl();//创建要拦截的对象 
 target.setUserDao(userDao); 
 
 MethodBeforeAdvice log = new MethodBeforeAdvice() { 
  public void before(Method m, Object[] args, Object target) 
   throws Throwable { 
  System.out.println("调用方法: " + m.getName()); 
  } 
 }; 
  
  
 
 // UserService userService = 
 // (UserService)AopProxyFactory.createProxy(target, log); 
  ProxyFactory factory = new ProxyFactory(target); 
  factory.addAdvice(log); 
 UserService userService = (UserService) factory.getProxy(); 
 userService.create("aop", "mypassword"); 
  
 userService.login("aop", "mypassword"); 
    userService.getAllUser(); 
 // userDao.print(); 
 } 
} 

1 2 3 4  下一页

Tags:Spring 原理 自我

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接