- 浏览: 597341 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 27225最近在做一个反馈功能,把数据反馈到对方公司网站,我公司是GBK ... -
Java创建对象的四种方法
2010-12-24 15:10 1263package test; import java ... -
文件上传
2010-12-16 09:42 1092我用Excel数据导入来说明文件上传问题 <form ... -
GBK编码转成UTF-8编码
2010-12-03 15:49 1521从GBK编码转成UTF-8编码 private String ... -
HttpClient请求
2010-11-24 18:22 1626一个apache的httpclient简单范本,常用在WebS ... -
接收任意个字符串的方法
2010-11-10 11:32 1139public class MutilStringParamsD ... -
有状态会话Bean(SLSB)和无状态会话Bean(SFSB)的区别(转)
2010-09-26 10:01 1919Session Bean:分有状态 ... -
ThreadLocal解决线程安全问题
2010-09-25 16:55 3309//以下代码存在问题 pub ... -
理解Socket
2010-09-03 00:31 1301服务器端代码: import java.io.Buffered ... -
理解TreeSet.add()方法
2010-08-31 17:35 3298Set存放不同元素,TreeSet存放不同元素,并且对元素进行 ... -
一道Java面试题
2010-08-25 15:40 1325有两组字符串,A组["A","B ... -
理解+=操作符
2010-08-23 14:52 992今天看到一篇文章(下面给出原文链接),对作者的错误理解予以纠正 ... -
更深入地理解自增自减运算符
2010-08-20 17:27 1191public class DeepTest { public ... -
理解重载与重写
2010-08-20 15:51 1117今天有个朋友问我重载与覆盖的区别,所以我就写好了发给他。在这贴 ... -
暴露属性不安全?
2010-08-17 20:19 1245我们在看书的时候常常看到书上说暴露属性不安全,那么请问下哪里不 ... -
理解继承
2010-08-10 11:52 993这个例子涉及到继承与 ... -
获取properties配置文件信息
2010-08-10 11:32 1731import java.io.IOException; imp ... -
中文字符按拼音排序
2010-06-01 13:12 1647java.util.Comparator cmp = java ... -
线程并发
2010-05-25 21:01 1221进程:表示一个任务。 线程:一种比进程更小的执行单位,依附在进 ... -
了解枚举
2010-05-23 19:05 1539为了了解枚举,先利用反射分析一下它 import java.l ...
相关推荐
本示例DEMO "Spring的AOP示例DEMO HELLOWORLD" 将引导我们深入理解Spring AOP的核心概念,并通过一个简单的 HelloWorld 示例来展示其实现过程。 首先,面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性...
Spring框架是Java开发中广泛使用的轻量级框架,它以其依赖...学习和理解"Spring4 HelloWorld",不仅能够帮助初学者掌握Spring的基本用法,也为进一步深入学习Spring的其他高级特性,如AOP、MVC、JPA等打下坚实基础。
HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld"); helloWorld.sayHello(); ``` 这就是Spring HelloWorld程序的基本构建过程,涉及到了Spring的核心组件和jar包。随着对Spring的深入学习,你会...
HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld"); System.out.println(helloWorld.sayHello()); ``` 通过上述步骤,我们成功地在Spring框架中输出了“HelloWorld”。这只是Spring框架冰山一角...
在"SpringMVC入门很简单之HelloWorld"这个主题中,我们将探讨如何设置一个基本的SpringMVC项目并实现简单的"Hello, World!"展示。 首先,项目结构至关重要。在给定的文件名称列表中,我们看到了几个关键目录: 1. ...
本篇文章将深入探讨“Spring之HelloWorld”,通过一个简单的示例介绍如何使用Spring框架构建应用程序。首先,我们来看一下Spring的核心概念。 Spring是一个开源的Java平台,它为构建基于Java的企业级应用提供了全面...
HelloWorld proxy = (HelloWorld) Proxy.newProxyInstance( HelloWorld.class.getClassLoader(), new Class[]{HelloWorld.class}, new LoggingInvocationHandler(target) ); proxy.sayHello(); // 输出 ...
在这个名为"springmvc_helloWorld"的项目示例中,我们将探讨如何利用Spring MVC实现一个简单的表单请求与响应。该项目旨在帮助初学者理解Spring MVC的核心概念和工作流程。 1. **Spring MVC 框架介绍** Spring MVC...
对于初学者来说,使用 IDEA 创建一个简单的 SpringMVC HelloWorld 示例是一个很好的起点,能够快速熟悉这两个工具的使用。 首先,让我们了解 SpringMVC 的核心组件和工作流程: 1. **DispatcherServlet**:这是 ...
HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld"); System.out.println(helloWorld.sayHello()); } } ``` 运行`MainApp`,你会看到"Hello World"被打印出来,这标志着你的Spring 3.0 "Hello...
在Eclipse这个强大的Java集成开发环境中,创建一个Spring框架的HelloWorld程序是学习Spring入门的典型步骤。这个程序展示了如何在Eclipse中配置Spring环境,编写简单的Bean定义,并通过Spring的IoC(Inversion of ...
在本资源包中,我们有两个主要的文件:`repository.rar`和`Spring3-hello-world-example.zip`。让我们逐一探讨它们所涉及的知识点。 首先,`repository.rar`通常包含的是Maven的本地仓库或者远程仓库中的依赖库。...
HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld"); helloWorld.sayHello(); ``` 在这里,`ClassPathXmlApplicationContext`是一个ApplicationContext的实现,它会加载指定路径(这里为`...
Spring框架是Java企业级应用开发中最广泛使用的框架之一,它提供了丰富的功能,包括依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问/对象关系映射(DAO/ORM)以及用于构建RESTful服务的Spring MVC。...
Spring3MVC-REST-HelloWorld 是一个基础的示例,用于展示如何在Spring框架的MVC模块中实现RESTful Web服务。这个实例是初学者理解Spring MVC与REST结合使用的理想起点。REST(Representational State Transfer)是一...
标题中的“Spring的Hello World:理解AOP”指的是在Spring框架中使用面向切面编程(Aspect-Oriented Programming,简称AOP)进行程序开发的基本概念和实践。面向切面编程是一种编程范式,旨在提高代码的可重用性和...
在本项目"spring+mybatis的helloworld"中,我们主要关注的是如何使用Spring和MyBatis这两个流行的Java开发框架来构建一个简单的Web应用程序。这个项目以Maven为构建工具,实现了MySQL数据库的插入操作,并利用Log4j...
这个"ssh_helloworld"项目是专为初学者设计的,旨在帮助他们理解并掌握SSH框架的基本用法。 首先,Struts是MVC(模型-视图-控制器)架构的一个实现,主要用于处理Web应用的用户界面逻辑。它提供了动作类来处理HTTP...
HelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld"); helloWorld.printMessage(); } } ``` 在`main`方法中,我们创建了一个`ClassPathXmlApplicationContext`实例,传入了配置文件的路径。这...
在本篇“Spring学习笔记——HelloWorld”中,我们将探讨Spring框架的基础知识,以及如何创建一个简单的Spring应用程序。Spring是一个广泛使用的Java企业级应用开发框架,它提供了丰富的功能,包括依赖注入、AOP...