`

自己理解spring中的AOP

    博客分类:
  • java
阅读更多

 Spring 中AOP概念是老生长谈的东东了, 说起概念来大家都晕晕的, 真是不好理解 ,抓住问题的本质,

三个为什么恩。 AOP的目的是什么,为了解决什么问题引出的AOP,实现的原理是什么恩,三个问题

1引出AOP的问题是

   yu

package com.cee.springMVC;

import org.apache.log4j.Logger;

public class LoginDemo {

	private Logger logger = Logger.getLogger(this.getClass().getName());

	/**
	 * 
	 * 假如我想在登陆前进行,后 日志记录操作 可能大家或说用log4j的方式,用这种方式会造成代码的入侵
	 * 而且相关代码很多,我不可能将每一个要日志操作的代码 写到每一个所需要的类 中,这样也太累了把
	 */
	public void login() {
		logger.info("登陆前");// 模拟方法
		System.out.println("login");
		logger.info("登陆后");// 模拟方法
	}

}

  原因明确了,那就跟着目的了,我们要解决这个问题恩, 解决的方式是

 采用 代理的方式 ,将公用的代码提取出来,合理的植入到所要地方,植入 是要通过 Spring 的配置文件植入,不要在代 码中植入

 代理模式的理解恩

  接口与实现类  调用实现类 声明的时候 用接口类型 , 接口就上 类对象的一个 副本或者承认

  写一个代理实现模式吧

 

package com.cee.proxy;

/**
 * @author qcy 定义了 代理借口 通过接口调用实现类的方法
 */
public interface Iproxy {

	public void testMothed();

	public void testMothed2();
}

 

 

package com.cee.proxy;

public class ProxyImple implements Iproxy {

	public void testMothed() {
		// TODO Auto-generated method stub
		System.out.print("testMothed");
	}

	public void testMothed2() {
		// TODO Auto-generated method stub
		System.out.print("testMothed1");

	}

}

 

 

package com.cee.proxy;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Iproxy ip = new ProxyImple();
		ip.testMothed();
	}

}

   写了一个简单的代理设计模式,实际上大部分的用动态代理设计模式,而不是这类的静态代理模式

 贴一个网址吧 上面说的比我说的清楚http://www.iteye.com/topic/282511,至少他有时序图。

  说说Spring 中的 关键就上 植入 的方式, 怎么植入

 算了本来想写呢, 网上的例子很多。。。

http://www.iteye.com/topic/42673 

http://www.iteye.com/topic/630787

分享到:
评论

相关推荐

    spring-aop-jar

    在Spring AOP中,切面可以通过注解或XML配置来定义。 - 连接点(Join Point):连接点是程序执行过程中的一个特定点,例如方法的调用或字段的访问。 - 切入点(Pointcut):切入点是连接点的集合,定义了切面将在...

    spring-boot aop

    这个`spring-aop`示例项目很可能会包含上述步骤的实现,通过阅读源代码,我们可以更深入地理解Spring Boot AOP的使用。同时,它可能还会展示如何结合实际业务逻辑,比如服务层的方法调用,来演示AOP如何优雅地注入...

    Spring 2.5 AOP 例子

    Spring 2.5 AOP(面向切面编程)是Java应用程序中的一个重要概念,它允许开发者在不修改原有代码的情况下插入新的行为或监控。这个例子旨在帮助我们理解和应用Spring框架的AOP特性。以下是对该主题的详细解释: 一...

    Spring使用AOP的三个jar包

    这三个jar包在Spring AOP中的角色如下: 1. `aspectjrt.jar`:提供AspectJ的运行时支持,用于实现基于AspectJ的切面。 2. `aspectjweaver.jar`:作为Spring AOP的核心,负责运行时织入,动态修改字节码以实现切面...

    死磕Spring之AOP篇 - Spring AOP两种代理对象的拦截处理(csdn)————程序.pdf

    在 Spring 中,AOP 的实现主要依赖于代理模式,有两种代理方式:JDK 动态代理和 CGLIB 动态代理。 JDK 动态代理是基于接口的,它要求被代理的目标对象必须实现至少一个接口。Spring 使用 `java.lang.reflect.Proxy`...

    Spring_AOP_学习小结 Spring_AOP_学习小结 Spring_AOP_学习小结

    1. Joinpoint(连接点):在Spring AOP中,Joinpoint指的是程序执行的某个特定点,如方法的执行。在Spring中,Joinpoint主要指的是方法的调用。 2. Advice(通知):Advice是在特定Joinpoint上执行的代码片段。...

    spring-aop.jar

    在Spring AOP中,切面通常包括通知(advice)和切点(pointcut)。通知定义了在特定的切点上执行的行为,而切点则定义了这些行为何时触发。 二、spring-aop.jar组件解析 1. **AOP代理**:Spring AOP支持两种代理...

    spring-aop.xsd

    总的来说,`spring-aop.xsd`是Spring AOP配置的基础,它帮助开发者理解并正确编写AOP配置,提升开发效率。通过学习和熟练掌握其背后的原理和用法,开发者可以更好地利用面向切面编程来组织和管理代码,降低系统的...

    Spring.net Aop 例子

    通过这个例子,你可以学习到如何在Spring.NET环境中实现AOP,理解动态代理的工作原理,并掌握如何在实际项目中应用AOP来提高代码的灵活性和可维护性。这将有助于你编写更加模块化、易于维护的软件系统。

    简单spring aop 例子

    在Spring AOP中,切面主要通过两种方式实现:代理(Proxies)和织入(Weaving)。 1. **代理**:Spring AOP支持两种类型的代理:JDK动态代理和CGLIB代理。JDK代理用于实现了接口的类,而CGLIB代理则用于没有接口或...

    spring_aop.rar_spring_aop

    通过这个实例工程,学习者可以直观地理解Spring AOP的工作原理,如何定义切面、配置通知以及如何在实际项目中应用。同时,它还能帮助开发者理解如何在不修改原始业务代码的情况下,实现通用功能的插入,提高代码的可...

    spring2.5.6 aop简单示例

    在本示例中,我们将深入探讨Spring框架2.5.6版本中的面向切面编程(AOP)概念。Spring AOP是Spring框架的核心组件之一,它允许开发者在不修改源代码的情况下,对程序进行横切关注点(如日志、事务管理、性能监控等)...

    研究下Spring中AOP的实现?

    在Spring框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者将关注点分离,将横切关注点(如日志、事务管理、安全检查等)与核心业务逻辑解耦。本篇文章将深入探讨Spring AOP的实现原理,并通过一个名...

    Spring中aop编程所需要的jar包

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许程序员定义横切关注点,如日志、事务管理、权限控制等,...理解这些组件的作用并正确配置它们,对于有效地利用Spring AOP实现代码解耦和模块化至关重要。

    Spring之AOP介绍

    在Spring AOP中,切面可以由Advisor(通知+切入点)或者拦截器实现。 - **通知**(Advice):定义了切面如何改变程序行为的信息,它是在特定连接点上执行的动作。 - **切入点**(Pointcut):定义了何时何处执行通知...

    spring-aop实例demo

    通过深入理解Spring AOP的原理和实践,开发者能够更好地掌握这一强大的设计模式,并将其有效地应用于实际项目中。在实际开发中,我们还需要考虑如何合理划分切面,避免切面之间的冲突,以及如何优化切点表达式以提高...

    spring的aop简单例子

    这个简单例子将帮助我们理解AOP的基本概念和如何在Spring框架中实现它。 首先,我们要知道AOP的核心概念:切面、通知、连接点、切点、目标对象和代理。切面是包含横切关注点(如日志记录、事务管理等)的模块化组件...

    Spring AOP完整例子

    首先,我们需要理解Spring AOP的基础概念。AOP的核心是切点(Pointcut),它定义了关注点在何处应用。在Spring中,我们通常使用表达式或者注解来定义切点。例如,我们可以使用`@Before`、`@After`、`@Around`、`@...

    spring2.5AOPdemo详细资料

    学习这个Demo,你需要理解每个部分的作用,分析源代码中的注解和逻辑,了解它们是如何与Spring AOP机制配合的。此外,通过运行测试用例,观察输出结果,你可以更深入地理解AOP的实际效果和应用场景。 总的来说,...

    spring 3.0 aop 实例

    1. **切入点表达式**:在Spring AOP中,我们可以使用切入点表达式来精确地定义何时应用通知。例如,`execution(* com.example.service.*.*(..))` 表示匹配com.example.service包下的所有类的所有方法。 2. **通知...

Global site tag (gtag.js) - Google Analytics