- 浏览: 590934 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (154)
- java (31)
- Struts (3)
- Hibernate (8)
- Spring (6)
- JS (14)
- DWR (1)
- Oracle (1)
- SQL Server (0)
- JSF (0)
- JPA (0)
- Grails (3)
- Ajax (1)
- Extjs (0)
- jQuery (4)
- MySQL (2)
- 正则表达式 (2)
- 其他 (6)
- 计算机应用 (7)
- Groovy (8)
- Google (1)
- Web (2)
- MongoDB Java Driver (1)
- mongodb (1)
- Linux (3)
- HTML (1)
- Tomcat (3)
- Eclipse (2)
- JSP (1)
- 缓存 (1)
- 动态 (1)
- 问题与解决 (3)
- HY (1)
- Android (35)
- LBS (1)
最新评论
-
u012136165:
list 方法:纠正:[2,5].add(1,9) ...
Groovy的list和map -
bruce.yuan:
误人子弟的文章。已经看到N个人转了这个帖子,这要贻害多少新人啊 ...
理解并解决GBK转UTF-8奇数中文乱码 -
思念-悲伤:
特意登录上来,感谢下!
理解String的compareTo()方法返回值 -
bo_hai:
总结的好,有效。
理解String的compareTo()方法返回值 -
u012678420:
在onCreate方法中获取某个View的宽度和高度
目标
package com.aop.joinpoint; public class Greeting { public void greet() { System.out.print("World"); } public String greetWithParam(String param) { System.out.println("Param is " + param); return param + ", nice to see you!"; } }
环绕通知(又叫包围通知)
package com.aop.advice; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; public class AroundAdvice implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation) throws Throwable { System.out.print("Hello "); Object ret = invocation.proceed(); System.out.println("!"); return ret; } }
前置通知
package com.aop.advice; import java.lang.reflect.Method; import org.springframework.aop.MethodBeforeAdvice; public class BeforeAdvice implements MethodBeforeAdvice { @Override public void before(Method method, Object[] arg, Object target) throws Throwable { if (arg[0] == null) { throw new IllegalArgumentException("arg cannot be null."); } System.out.println("Before method:" + method.getName() + "(\"" + arg[0] + "\")"); } }
后置通知
package com.aop.advice; import java.lang.reflect.Method; import org.springframework.aop.AfterReturningAdvice; public class AfterAdvice implements AfterReturningAdvice { @Override public void afterReturning(Object returningValue, Method method, Object[] arg, Object target) throws Throwable { System.out.println("After method:" + method.getName() + "(\"" + arg[0] + "\")"); } }
手动创建代理
package com.aop.demo; import org.springframework.aop.framework.ProxyFactory; import com.aop.advice.AfterAdvice; import com.aop.advice.AroundAdvice; import com.aop.advice.BeforeAdvice; import com.aop.joinpoint.Greeting; public class GreetingDemo { public static void main(String[] args) { Greeting target = new Greeting(); AroundAdvice aroundAdvice = new AroundAdvice(); BeforeAdvice beforeAdvice = new BeforeAdvice(); AfterAdvice afterAdvice = new AfterAdvice(); ProxyFactory pf = new ProxyFactory(); pf.addAdvice(aroundAdvice); pf.setTarget(target); Greeting proxy = (Greeting)pf.getProxy(); //不使用代理 target.greet(); System.out.println(); //使用代理(包围通用) proxy.greet(); System.out.println(); pf.removeAdvice(aroundAdvice); pf.addAdvice(beforeAdvice); proxy = (Greeting)pf.getProxy(); //使用代理(前置通用) System.out.println(proxy.greetWithParam("Bruce")); System.out.println(); pf.removeAdvice(beforeAdvice); pf.addAdvice(afterAdvice); proxy = (Greeting)pf.getProxy(); //使用代理(后置通用) System.out.println(proxy.greetWithParam("David")); } }
输出
/**Output: World Hello World! Before method:greetWithParam("Bruce") Param is Bruce Bruce, nice to see you! Param is David After method:greetWithParam("David") David, nice to see you! */
发表评论
-
理解并解决GBK转UTF-8奇数中文乱码
2011-06-18 21:29 27101最近在做一个反馈功能,把数据反馈到对方公司网站,我公司是GBK ... -
Java创建对象的四种方法
2010-12-24 15:10 1231package test; import java ... -
文件上传
2010-12-16 09:42 1049我用Excel数据导入来说明文件上传问题 <form ... -
GBK编码转成UTF-8编码
2010-12-03 15:49 1471从GBK编码转成UTF-8编码 private String ... -
HttpClient请求
2010-11-24 18:22 1588一个apache的httpclient简单范本,常用在WebS ... -
接收任意个字符串的方法
2010-11-10 11:32 1099public class MutilStringParamsD ... -
有状态会话Bean(SLSB)和无状态会话Bean(SFSB)的区别(转)
2010-09-26 10:01 1882Session Bean:分有状态 ... -
ThreadLocal解决线程安全问题
2010-09-25 16:55 3278//以下代码存在问题 pub ... -
理解Socket
2010-09-03 00:31 1265服务器端代码: import java.io.Buffered ... -
理解TreeSet.add()方法
2010-08-31 17:35 3235Set存放不同元素,TreeSet存放不同元素,并且对元素进行 ... -
一道Java面试题
2010-08-25 15:40 1285有两组字符串,A组["A","B ... -
理解+=操作符
2010-08-23 14:52 959今天看到一篇文章(下面给出原文链接),对作者的错误理解予以纠正 ... -
更深入地理解自增自减运算符
2010-08-20 17:27 1158public class DeepTest { public ... -
理解重载与重写
2010-08-20 15:51 1085今天有个朋友问我重载与覆盖的区别,所以我就写好了发给他。在这贴 ... -
暴露属性不安全?
2010-08-17 20:19 1216我们在看书的时候常常看到书上说暴露属性不安全,那么请问下哪里不 ... -
理解继承
2010-08-10 11:52 961这个例子涉及到继承与 ... -
获取properties配置文件信息
2010-08-10 11:32 1697import java.io.IOException; imp ... -
中文字符按拼音排序
2010-06-01 13:12 1612java.util.Comparator cmp = java ... -
线程并发
2010-05-25 21:01 1188进程:表示一个任务。 线程:一种比进程更小的执行单位,依附在进 ... -
了解枚举
2010-05-23 19:05 1501为了了解枚举,先利用反射分析一下它 import java.l ...
相关推荐
根据学习笔记整理的HelloWorld,需要自行下载Spring3相关的包
[INFO] | +- aopalliance:aopalliance:jar:1.0:compile [INFO] | +- org.springframework:spring-beans:jar:3.1.2.RELEASE:compile [INFO] | \- org.springframework:spring-context:jar:3.1.2.RELEASE:compile ...
NULL 博文链接:https://istone.iteye.com/blog/423895
—— 5.1 概述 5.2 SpEL基础5.3 SpEL语法5.4在Bean定义中使用EL6.1 AOP基础6.2 AOP的HelloWorld6.3 基于Schema的AOP6.4 基于@AspectJ的AOP 6.5 AspectJ切入点语法详解6.6 通知参数6.7 通知顺序6.8 切面实例化模型
springboot项目中怎么使用aop全局拦截controller的url以及参数;拦截器的使用等示例demo;springbootAop的应用可以使开发者很方便的记录日志和用户操作记录;方便了程序查错和分析性能的重要的一个方法。 能学到什么...
AOP in .NET is a great resource for those interested in learning how aspects can ...这本书由浅入深,有hello world 的入门案例,还有从没有AOP到AOP的重构对比,也有深入的AOP方方面面。想成为AOP高手的人必读。
该源码是课程 Java Spring案例精讲 ---- Spring框架 的源码,包含Java Spring的最简单的Hello World、IOC、AOP及Log的源码 Spring整体框架中的核心功能,例如:IOC、AOP、Bean生命周期、上下文、作用域、资源处理等...
下面是Spring的HelloWorld的程序的文件结构: C:. │ .classpath │ .project │ ├─build │ └─classes │ └─com │ ├─dineshonjava │ │ └─sdnext │ │ └─springConfig │ │ spring.xml │ │ │ ...
【第六章】 AOP 之 6.2 AOP的HelloWorld ——跟我学spring3 【第六章】 AOP 之 6.3 基于Schema的AOP ——跟我学spring3 【第六章】 AOP 之 6.4 基于@AspectJ的AOP ——跟我学spring3 【第六章】 AOP 之 6.5 AspectJ...
2——第一个ESB代码Hello World 12 3——第二个ESB代码Hello World Action 29 4——第三个ESB代码Hello World Notification 38 5——第四个ESB代码Hello World File Action 45 6——第五个ESB代码Custom Action 51 7...
使用跟踪和记录方面(面向方面领域的HelloWorld)作为例子,本文展示了如何使用Spring框架所独有的特性来声明切入点和通知以便应用方面。本系列的第二部分将更深入地介绍如何运用Spring中的所有通知类型和切入点来...
火龙果软件工程技术中心 在本系列的第一部分,我介绍了如何实现面向方面领域的“HelloWorld”:跟踪和记录方面。利用Spring框架所提供的面向方面编程(Aspect-OrientedProgramming,AOP)功能,您看到了如何使用...
SSH框架集成是较复杂和难理解的,只有在不断的练习和使用中才能慢慢的理解其中的原理,仅凭看视频是远远不够的,因为这些涉及了尤其是spring底层的好多类以及控制翻转(IOC)和面向切面(AOP)编程的思想,不过在讲述...
第三节:SpringBoot HelloWorld实现 第二章:SpringBoot项目属性配置 第一节:项目内置属性 第二节:自定义属性 第三节:ConfigurationProperties配置 第三章:SpringBoot之MVC支持 第一节:@RequestMapping配置url...
## Spring入门学习 首先认识下Spring的结构 !... 然后我们皆可以写我们的demo了 ...<bean id="helloBean" class="mybatis.study.start.bean.HelloWorld"> ``` list Map,provincecitymysqq
HelloWorld 简单入门程序 ObjectBind 框架在web下的对象创建和数据绑定功能,包括实体对象、列表对象和文件上传等数据绑定获取 DataAccess 数据访问功能 Filters web下action的Filter...
使用跟踪和记录方面(面向方面领域的HelloWorld)作为例子,本文展示了如何使用Spring框架所独有的特性来声明切入点和通知以便应用方面。本系列的第二部分将更深入地介绍如何运用Spring中的所有通知类型和切入点来...