`

Spring AOP原理解析

    博客分类:
  • Java
阅读更多

AOP概念:

实现AOP有两种方式:

1、采用Annoation注解的方法.

1、接口的设计

package com.hejunfeng.spring;

public interface UserManager
{
    public void modifyUser(String id,String username,String password) ;
    public void deleteUser(String id) ;
    public void addUser(String username,String password) ;
}

2、接口的实现
package com.hejunfeng.spring.impl;
import com.hejunfeng.spring.UserManager;
public class UserManagerImpl implements UserManager
{
    public void addUser(String username, String password)
    {
        System.out.println("----------UserManagerImpl.addUser()----------------");
    }
    public void deleteUser(String id)
    {
        System.out.println("----------UserManagerImpl.deleteUser()----------------");

    }
    public void modifyUser(String id, String username, String password)
    {
        System.out.println("----------UserManagerImpl.modifyUser()----------------");
    }

}

3、定义一个切点

package com.hejunfeng.spring;

public interface MySecurityManager
{

//抽出的一个切点
public void security();
}


4、实现此切点并进行相应的一些操作(annoation注解)

package com.hejunfeng.spring.impl;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import com.hejunfeng.spring.MySecurityManager;
//这里采用注解方式
@Aspect public class MySecurityManagerImpl implements MySecurityManager
{
    //定义切入点addMethod(),只负责用来描述切入那些方法.这里是add方法.其它的可能很多
    //接收所有的ADD方法是否有返回值是否有*无参数都接收
    @Pointcut("execution(* add*(..))")
    private void allAddMethod(){ }
    //定义Advice方法用来标识在切入点的何处进行织入
    //抽出一个切面就是安全性检查security()
    @Before("allAddMethod()")
    public void security()
    {
        System.out.println("---------作用就是进行安全性检查---------");
    }
}


5、applicationContext.xml文件的配置信息:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<aspectj-autoproxy></aspectj-autoproxy>
<bean id="mySecurityManagerImpl" class="com.hejunfeng.spring.impl.MySecurityManagerImpl"></bean>
<bean id="userManager" class="com.hejunfeng.spring.impl.UserManagerImpl"></bean>
< /beans>


6、测试,和其它方法效果一致
package com.hejunfeng.test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.hejunfeng.spring.UserManager;
public class TestStatic {
    public static void main(String[] args)
    {
        BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserManager userManager = (UserManager)factory.getBean("userManager"); userManager.addUser("何俊峰", "110") ;
    }

}

分享到:
评论
2 楼 shenjichao2009 2013-12-05  
1 楼 momoko8443 2009-05-27  
以后转帖的时候稍微排下版

相关推荐

    spring aop 原理解析

    【Spring AOP 原理解析】 Spring AOP(面向切面编程)是Spring框架的重要组成部分,它允许开发者定义“切面”来封装系统中的交叉关注点,如日志、事务管理、安全性等,从而提高代码的可复用性和可维护性。在Spring ...

    Spring框架系列(9) - Spring AOP实现原理详解之AOP切面的实现.doc

    Spring AOP 是基于 IOC 的 Bean 加载来实现的,本文主要介绍 Spring AOP 原理解析的切面实现过程。AOP 切面的实现是将切面类的所有切面方法根据使用的注解生成对应 Advice,并将 Advice 连同切入点匹配器和切面类等...

    spring aop 源码解析

    《Spring AOP 源码解析》 Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分,它为开发者提供了一种方便的实现横切关注点的方式,如日志、事务管理等。AOP通过将这些关注...

    spring ioc和aop原理流程图(详细)

    Spring 框架是Java开发中的核心框架,它主要由两个关键部分组成:IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。这两个概念是Spring框架的核心特性,极大地简化了企业...

    五、Spring源码分析——Spring Aop

    这对于理解Spring的工作原理,以及优化和扩展Spring AOP功能具有重要意义。 在实际开发中,Spring AOP的应用非常广泛,它可以极大地简化代码,提高代码的可维护性和可复用性。通过阅读和理解Spring AOP的源码,...

    spring aop 学习笔记

    本学习笔记将深入探讨Spring AOP的核心概念、工作原理以及实际应用。 1. **核心概念** - **切面(Aspect)**:切面是关注点的模块化,包含业务逻辑之外的横切关注点,如日志、事务管理。 - **连接点(Join Point...

    Spring aop 性能监控器

    本篇文章将深入探讨如何使用Spring AOP实现性能监控器,并通过源码分析来理解其工作原理。 首先,我们要了解AOP的核心概念——切面(Aspect)、通知(Advice)、连接点(Join Point)、切入点(Pointcut)和织入...

    第3章 Spring AOP.ppt

    理解和掌握AOP的概念及其在Spring框架中的实现方式,包括基于XML和注解的配置方式,以及JDK动态代理和CGLIB代理的原理和使用。通过学习,应能独立实现AOP相关的功能,提升代码的可扩展性和可维护性。

    spring aop

    在Maven的`pom.xml`文件中,你需要引入Spring AOP的相关依赖,例如`spring-aop`和`aspectjrt`,确保项目能够正确解析和使用AOP相关的类库。 2. **Spring AOP的基本概念** - **切面(Aspect)**:切面是关注点的...

    spring aop的jar包

    5. **org.springframework.aop-3.0.5.RELEASE.jar**:这个文件是Spring AOP的核心实现,提供了切面、通知、代理等AOP概念的实现,以及AOP配置和解析的支持。 6. **org.springframework.expression-3.0.5.RELEASE....

    springaop

    标题 "springaop" 暗示我们关注的是Spring框架中的AOP(面向切面编程)模块。在Spring框架中,AOP是一种强大的工具,它允许程序员定义“切面”,这些切面可以封装横切关注点,如日志、事务管理、性能监控等,将它们...

    spring aop实例annotation方法实现

    在IT行业中,Spring AOP(面向切面编程)是一种强大的工具,它允许程序员在不修改原有业务代码的情况下,对程序进行功能增强。本实例将详细探讨如何通过注解(Annotation)来实现Spring AOP的方法拦截。 一、Spring...

    Java spring AOP源码

    在探讨Spring AOP源码之前,我们首先需要了解Spring AOP的基本概念以及它的工作原理。面向切面编程(Aspect-Oriented Programming, AOP)是一种编程范式,它通过将横切关注点(cross-cutting concerns)从业务逻辑中...

    spring-aop AND proxy

    标签“源码”意味着这篇博客可能深入解析了Spring AOP的内部工作机制,包括如何通过代理机制实现切面的织入,以及Spring AOP的相关核心类如`Advised`、`ProxyFactoryBean`、`DefaultAdvisorAdapterRegistry`等。...

    spring-aop.rar_aop1270_spring_spring aop

    本文将围绕Spring AOP的源码分析,探讨其核心概念、工作原理以及在实际开发中的应用。 一、AOP核心概念 1. 切面(Aspect):切面是关注点的模块化,通常包含一组通知(advises)和一个切入点(pointcut)定义。 2...

    深入解析Spring AOP源码:从原理到实现,全方位掌握Java AOP编程精髓

    了解Spring AOP的源码有助于深入理解其工作原理。在源码解析中,我们通常会关注以下几个关键点: 1. 切面类的解析:如何识别和处理切面类,提取切点和通知信息。 2. 创建代理:根据目标对象的类型选择JDK动态代理或...

    SpringAOP的源码解析.doc

    《Spring AOP源码解析》 Spring AOP(面向切面编程)是Spring框架的核心特性之一,它允许我们...通过阅读和理解Spring AOP的源码,我们可以更好地掌控AOP的工作原理,从而在实际开发中更加灵活地运用这一强大的工具。

    Spring Aop 引用新功能 源码

    通过源码分析,我们可以深入了解Spring AOP的工作原理,以及如何通过`IntroductionInterceptor`或`@AspectJ`来实现引入。理解并熟练运用这一特性,将有助于我们在实际开发中更好地进行代码解耦和模块化,提升软件的...

Global site tag (gtag.js) - Google Analytics