Spring应用概要.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.4.1 代理机制 3.动态代理 要实现动态代理,同样需要定义所要代理的接口: IHello.java代码如下: public interface IHello{ public void hello(String name); } 然后让实现业务逻辑的HelloSpeaker类实现IHello接口。 HelloSpeaker.java代码如下: public class HelloSpeaker implements IHello{ public void hello(String name){ System.out.println(“Hello, ”+name); } } 示例 定义所要代理的接口: IHello.java代码如下: public interface IHello{ public void hello(String name); } 让实现业务逻辑的HelloSpeaker类实现IHello接口 HelloSpeaker.java代码如下: public class HelloSpeaker implements IHello{ public void hello(String name){ System.out.println(“Hello, ”+name); } } 示例 实现不同的代理类: public class LogHandler implements InvocationHandler { private Object sub; public LogHandler() { } public LogHandler(Object obj) { sub = obj; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println(before you do thing); method.invoke(sub, args); System.out.println(after you do thing); return null; } } 示例 public class ProxyDemo { public static void main(String[] args) { HelloSpeaker helloSpeaker = new HelloSpeaker(); LogHandler logHandler = new LogHandler(helloSpeaker); Class cls = helloSpeaker.getClass(); IHello iHello = (IHello) Proxy.newProxyInstance( cls.getClassLoader(), cls.getInterfaces(), logHandler); iHello.hello(Justin); } } before you do thing hello,Justin after you do thing 7.4.2 AOP基本概念 Cross-cutting concern 7.4.2 AOP基本概念 2. Aspect 将散落在各个业务类中的Cross-cutting concerns收集起来,设计各个独立可重用的类,这种类称之为Aspect。 例如在动态代理中将日志的动作设计为一个LogHandler类,LogHandler类在AOP术语中就是Aspect的一个具体实例。 7.4.3 通知 Advice Spring提供了5种通知类型 Interception Around Advice:目标对象的方法执行前后被调用 Before Advice:目标对象的方法执行前被调用 After Advice:目标对象的方法执行后被调用 Throw Advice:目标对象的方法抛出异常后被调用 Introduction Advice:一种特殊的拦截通知 示例 1、建立Java 项目:Spring_Before 2、建立业务类( HelloSpeaker.java) public class HelloSpeaker { public void hello(String name){ System.out.println(Hello, + name); } } 3、测试程序(Test.java)

文档评论(0)

南非的朋友 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档