- 浏览: 230552 次
- 性别:
- 来自: beijing
文章分类
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
发表评论
-
二进制 授权管理 java
2013-09-09 12:52 913package org.qincy.binary; ... -
com.richfit.bi.quartz 定时执行示例
2013-04-12 15:39 01 内含jetty 配置,下载jetty 依赖包,算了,还是提 ... -
利用工具将shp文件导入到oracle spatial中
2012-05-21 14:20 43931 下载shp2sdo 工具,将工具放在 oracle按照目录 ... -
Arcgis object for java 访问栅格数据,使用GP工具,进行栅格矢量化---栅格矢量化面。
2012-06-20 09:17 4158直接贴代码了,不多解释了。 1、栅格数据的 ... -
svn 删除注册表
2012-02-11 12:02 1569svn 删除注册表 -
arcgis server 服务
2012-01-06 17:58 1186package com.hdmap.fymas; imp ... -
Flex BlazeDS java 项目
2011-12-12 17:21 1102根据网上的例子 ,写的 flex BlazeDS 框架与 ... -
工具类
2011-02-18 14:05 979英文数字转换为 中文数字 public class Mon ... -
junit 4 spring 自动化测试
2010-12-13 16:08 16421 添加jar ,依赖jar 包围 spring-test, ... -
在tomcat 发布,去掉项目名称
2010-11-17 09:53 19701 找到 server.xml 配置= ... -
掉字段内容包含的空格
2010-09-27 10:17 982使用replace函数去掉字段内容包含的空格,例子如下: up ... -
无聊的jsti 的fn 函数(资料备份)
2010-09-25 17:16 985无聊的jsti 的fn 函数(资料备份) ... -
无聊写Code
2010-09-25 09:38 1009package edu.qdkj.main; impor ... -
Spring Quartz 学习
2010-09-20 09:27 1175Quartz 是一个 定时执行的框架,可以设定规定时执行,或者 ... -
kaptcha 例子
2010-09-13 15:09 3027kaptcha 简单例子 与 产生中文字符 kaptch ... -
myEclipse 下的项目不能编译
2010-09-09 14:21 952查看 是否有的错误的jar 1.项目----prope ... -
关于VLSM 例子
2010-08-31 16:57 1501未经测试,不知道理解是否正确。 VLSM(可变长子网掩码) ... -
jwebmail的配置
2010-08-16 16:59 2499jwebmail的配置说明 ... -
Solaris10下Nagios安装
2010-08-16 08:48 974发 -
java JDK 下载页面
2010-08-13 16:32 1022全部JDK 下载,从 1.1 到 jdk 6 下载 http ...
相关推荐
在Spring AOP中,切面可以通过注解或XML配置来定义。 - 连接点(Join Point):连接点是程序执行过程中的一个特定点,例如方法的调用或字段的访问。 - 切入点(Pointcut):切入点是连接点的集合,定义了切面将在...
这个`spring-aop`示例项目很可能会包含上述步骤的实现,通过阅读源代码,我们可以更深入地理解Spring Boot AOP的使用。同时,它可能还会展示如何结合实际业务逻辑,比如服务层的方法调用,来演示AOP如何优雅地注入...
Spring 2.5 AOP(面向切面编程)是Java应用程序中的一个重要概念,它允许开发者在不修改原有代码的情况下插入新的行为或监控。这个例子旨在帮助我们理解和应用Spring框架的AOP特性。以下是对该主题的详细解释: 一...
这三个jar包在Spring AOP中的角色如下: 1. `aspectjrt.jar`:提供AspectJ的运行时支持,用于实现基于AspectJ的切面。 2. `aspectjweaver.jar`:作为Spring AOP的核心,负责运行时织入,动态修改字节码以实现切面...
在 Spring 中,AOP 的实现主要依赖于代理模式,有两种代理方式:JDK 动态代理和 CGLIB 动态代理。 JDK 动态代理是基于接口的,它要求被代理的目标对象必须实现至少一个接口。Spring 使用 `java.lang.reflect.Proxy`...
1. Joinpoint(连接点):在Spring AOP中,Joinpoint指的是程序执行的某个特定点,如方法的执行。在Spring中,Joinpoint主要指的是方法的调用。 2. Advice(通知):Advice是在特定Joinpoint上执行的代码片段。...
在Spring AOP中,切面通常包括通知(advice)和切点(pointcut)。通知定义了在特定的切点上执行的行为,而切点则定义了这些行为何时触发。 二、spring-aop.jar组件解析 1. **AOP代理**:Spring AOP支持两种代理...
总的来说,`spring-aop.xsd`是Spring AOP配置的基础,它帮助开发者理解并正确编写AOP配置,提升开发效率。通过学习和熟练掌握其背后的原理和用法,开发者可以更好地利用面向切面编程来组织和管理代码,降低系统的...
通过这个例子,你可以学习到如何在Spring.NET环境中实现AOP,理解动态代理的工作原理,并掌握如何在实际项目中应用AOP来提高代码的灵活性和可维护性。这将有助于你编写更加模块化、易于维护的软件系统。
在Spring AOP中,切面主要通过两种方式实现:代理(Proxies)和织入(Weaving)。 1. **代理**:Spring AOP支持两种类型的代理:JDK动态代理和CGLIB代理。JDK代理用于实现了接口的类,而CGLIB代理则用于没有接口或...
通过这个实例工程,学习者可以直观地理解Spring AOP的工作原理,如何定义切面、配置通知以及如何在实际项目中应用。同时,它还能帮助开发者理解如何在不修改原始业务代码的情况下,实现通用功能的插入,提高代码的可...
在本示例中,我们将深入探讨Spring框架2.5.6版本中的面向切面编程(AOP)概念。Spring AOP是Spring框架的核心组件之一,它允许开发者在不修改源代码的情况下,对程序进行横切关注点(如日志、事务管理、性能监控等)...
在Spring框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者将关注点分离,将横切关注点(如日志、事务管理、安全检查等)与核心业务逻辑解耦。本篇文章将深入探讨Spring AOP的实现原理,并通过一个名...
在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许程序员定义横切关注点,如日志、事务管理、权限控制等,...理解这些组件的作用并正确配置它们,对于有效地利用Spring AOP实现代码解耦和模块化至关重要。
在Spring AOP中,切面可以由Advisor(通知+切入点)或者拦截器实现。 - **通知**(Advice):定义了切面如何改变程序行为的信息,它是在特定连接点上执行的动作。 - **切入点**(Pointcut):定义了何时何处执行通知...
通过深入理解Spring AOP的原理和实践,开发者能够更好地掌握这一强大的设计模式,并将其有效地应用于实际项目中。在实际开发中,我们还需要考虑如何合理划分切面,避免切面之间的冲突,以及如何优化切点表达式以提高...
这个简单例子将帮助我们理解AOP的基本概念和如何在Spring框架中实现它。 首先,我们要知道AOP的核心概念:切面、通知、连接点、切点、目标对象和代理。切面是包含横切关注点(如日志记录、事务管理等)的模块化组件...
首先,我们需要理解Spring AOP的基础概念。AOP的核心是切点(Pointcut),它定义了关注点在何处应用。在Spring中,我们通常使用表达式或者注解来定义切点。例如,我们可以使用`@Before`、`@After`、`@Around`、`@...
学习这个Demo,你需要理解每个部分的作用,分析源代码中的注解和逻辑,了解它们是如何与Spring AOP机制配合的。此外,通过运行测试用例,观察输出结果,你可以更深入地理解AOP的实际效果和应用场景。 总的来说,...
1. **切入点表达式**:在Spring AOP中,我们可以使用切入点表达式来精确地定义何时应用通知。例如,`execution(* com.example.service.*.*(..))` 表示匹配com.example.service包下的所有类的所有方法。 2. **通知...