Java的代码  
  1. 包 cn.itcast.day3.aopframework;
  2. 进口 java.io.IOException的;
  3. 进口 的java.io.InputStream;
  4. 进口 java.util.Properties;
  5. 进口 cn.itcast.day3.Advice;
  6. 公共 类 的BeanFactory {
  7. 属性道具=  新 特性();
  8. 公共 Bean工厂(IPS的InputStream){
  9. 尝试 {
  10. props.load(IPS);
  11. }  赶上 (IOException异常E){
  12. e.printStackTrace();
  13. }
  14. }
  15. 公共 对象的getBean(字符串名称){
  16. 弦乐的className = props.getProperty(名称);
  17. 对象豆=  空;
  18. 尝试 {
  19. clazz类=的Class.forName(类名);
  20. 豆= clazz.newInstance();
  21. }  赶上 (例外五){
  22. e.printStackTrace();
  23. }
  24. 如果(豆  的instanceof  的ProxyFactoryBean){
  25. 对象代理=  空;
  26. ProxyFactoryBean中的ProxyFactoryBean =(ProxyFactoryBean里)豆;
  27. 尝试 {
  28. 意见建议=(咨询)的Class.forName(props.getProperty(姓名+  “.advice” ))的newInstance()。
  29. 对象目标=的Class.forName(props.getProperty(名称+  “的.target” ))的newInstance()。
  30. proxyFactoryBean.setAdvice(咨询);
  31. proxyFactoryBean.setTarget(目标);
  32. 代理= proxyFactoryBean.getProxy();
  33. }  赶上 (例外五){
  34. e.printStackTrace();
  35. }
  36. 返回 代理;
  37. }
  38. 返回 豆;
  39. }
  40. }
  41. 包 cn.itcast.day3.aopframework;
  42. 进口 的java.io.InputStream;
  43. 进口 java.util.Collection的;
  44. 公共 类 AopFrameworkTest {
  45. / **
  46. * @参数的args
  47. * /
  48. 公共 静态 无效 的主要(字串[]
    args)  抛出 异常{
  49. // TODO自动生成方法存根
  50. InputStream的IPS = AopFrameworkTest。类.getResourceAsStream(“config.properties” );
  51. 对象豆=  新 的BeanFactory(IPS).getBean(“XXX” );
  52. 的System.out.println(bean.getClass()的getName());
  53. ((集合)豆).clear();
  54. }
  55. }
  56. 包 cn.itcast.day3.aopframework;
  57. 进口 java.lang.reflect.InvocationHandler;
  58. 进口 java.lang.reflect.Method中;
  59. 进口 java.lang.reflect.Proxy;
  60. 进口 cn.itcast.day3.Advice;
  61. 公共 类 的ProxyFactoryBean {
  62. 私人 咨询建议;
  63. 私人 对象的目标;
  64. 公众 咨询getAdvice(){
  65. 返回 意见;
  66. }
  67. 公共 无效 setAdvice(咨询意见){
  68. 这.advice =意见;
  69. }
  70. 公共 对象了getTarget(){
  71. 返回 的目标;
  72. }
  73. 公共 无效 setTarget(目标对象){
  74. 这.TARGET =目标;
  75. }
  76. 公共 对象的getProxy(){
  77. // TODO自动生成方法存根
  78. 反对Proxy3服务器= Proxy.newProxyInstance(
  79. target.getClass()。getClassLoader(),
  80. / *新的Class [] {} Collection.class,* /
  81. target.getClass()。getInterfaces(),
  82. 新 的InvocationHandler(){
  83. 公共 对象调用(对象代理,方法的方法,对象[]参数)
  84. 抛出 的Throwable
  85. / *长BEGINTIME = System.currentTimeMillis的();
  86. 对象retVal的= method.invoke(目标参数);
  87. 长endTime的= System.currentTimeMillis的();
  88. 的System.out.println(method.getName()+“运行时间”+(endTime的 - BEGINTIME));
  89. 返回retVal的; * /
  90. advice.beforeMethod(法);
  91. 对象retVal的= method.invoke(目标参数);
  92. advice.afterMethod(法);
  93. 返回 retVal的;
  94. }
  95. }
  96. );
  97. 返回 Proxy3发出;
  98. }
  99. }
  100. config.properties
  101. #XXX =的java.util.ArrayList
  102. XXX = cn.itcast.day3.aopframework.ProxyFactoryBean
  103. xxx.advice = cn.itcast.day3.MyAdvice
  104. xxx.target =的java.util.ArrayList

春天aopframework实现的更多相关文章

  1. 剁手党也有春天 -- 淘宝 UWP ”比较“功能诞生记

    前言 网购已经不再是现在的时髦,而变成了我们每天的日常生活.上网已经和买买买紧密地联系在了一起,成为了我们的人生信条.而逛街一词,越来越多地变成了一种情怀.有时候我们去逛街,要么是为了打发时间,要么是 ...

  2. web前端的春天 or 噩梦

    「 微信应用号可以做什么」 简单说,微信"小程序"可以为开发者提供基于微信的表单.导航.地图.媒体和位置等开发组件,让他们在微信的网页里构建一个 HTML 5 应用.同时微信还开放 ...

  3. TODO:小程序的春天你想做什么

    TODO:小程序的春天你想做什么 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 初步了解小程序的特点 导航明确,来去自如 统一稳定, 视觉规范 ...

  4. python opencv 利用Lab空间把春天的场景改为秋天

    前一段时间实现了Reinhard颜色迁移算法,感觉挺有意思的,然后在代码上随意做了一些更改,有了一些发现,把Lab通道的a通道值改为127左右,可以将绿色改为黄色,而对其他颜色的改动非常小,因此可以将 ...

  5. 企业SAAS的春天,将以手机应用的形式,即将到来

    派尔科技吴春福 *本文是派尔为什么要投身企业移动应用的内部分享文章: *我没有仔细核查资料,仅代表个人看法,思路也是在整理过程,逻辑未必很完整,看官将就着看. 企业SAAS,概念起源是N年前,先行者也 ...

  6. 8年,属于 HTML 5 春天的到来悄悄!

    [核心提示] 在 8 年时间中,HTML 5 为整个行业都带来了什么.标准终于确定后又会产生什么样的变革呢? 微博微信Twitter对于非常多人来说,非常有可能在微信的朋友圈里玩过「围住神经猫」,也非 ...

  7. 《如莲春天》Java开发框架

    关于 如莲者,净洁如莲之意,希望打造一个简洁的系统框架.系统主要采用Spring相关技术,故取名:如莲春天.    如莲春天,包括一套系统界面.一个权限管理系统.一个CURD代码生成模块.一些基础模块 ...

  8. 春天的事务之9.3编程式事务 - 跟我学spring3

    9.3编程式事务 9.3.1编程式事务概述 所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理. Spring框架提供一致的事务抽象,因此对于JDBC还是JTA事务都是采用相同 ...

  9. 春天JDBC事务管理

    JDBC事务管理 春天提供编程式的事务管理(编程式事务管理)与声明式的事务管理(声明式事务management),为不同的事务实现提供了一致的编程模型,这节以JDBC事务为例,介绍Spring的事务管 ...

随机推荐

  1. Axure实现淡入淡出效果

    小伙伴们有可能在各大网站看到淡入淡出效果的动画,比如淘宝.京东,淘宝每天会把各种打折促销.今日推荐.限时抢购等做成淡入淡入或者向右活动等类似翻页的效果放在首页,吸引顾客的眼球,那么如何使用Axure来 ...

  2. oralce 查看是否启动 登陆 创建用户 常用命令小记

    最简单看进程有没有: ps -ef | grep ora 其次用oracle的的命令查看,比如: su - oracle sqlplus / as sysdba 看能连进数据库不. 创建用户和表空间: ...

  3. (NO.00004)iOS实现打砖块游戏(十一):"一闪一闪亮晶晶,我们都是小星星"

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 现在一个基本的游戏逻辑已经搭建好了,但是感觉还是缺点什么呢? 蠢 ...

  4. SDL2源代码分析2:窗口(SDL_Window)

    ===================================================== SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL ...

  5. TCP/IP入门(1) --链路层

    /** 本博客由汗青ZJF整理并发布, 转载请注明出处: http://blog.csdn.net/zjf280441589/article/category/1854365 */ TCP/IP体系结 ...

  6. sql中with的用法(CTE公用表表达式):应用子查询嵌套,提高sql性能

    一.WITH AS的含义 WITH AS短语,也叫子查询部分(subquery factoring),定义一个SQL片断,该片断会被整个SQL语句所用到. 有时是为了让SQL语句的可读性更高些,也可能 ...

  7. 通过一个tomcat端口访问多个tomcat项目 tomcat转发

    需求是这样的,有一个tomcat,是80端口,现在我要通过这个tomcat转发到服务器其他tomcat,其他tomcat的端口不是80.这样做就可以避免这样www.baidu.com:8081的情况. ...

  8. 【翻译】针对多种设备定制Ext JS 5应用程序

    原文:Tailoring Your Ext JS 5 Application for a Multi-Device World 概述 鉴于当今设备和表单因素的扩散,要针对所有这些可能性来优化应用程序已 ...

  9. (三十六)利用AFNetworking进行JSON数据解析

    1.首先要安装CocoaPods,然后在需要AFNetworking的工程根目录建立podfile,内容如下: platform :ios, '7.0' pod 'AFNetworking' 2.然后 ...

  10. Unity UGUI实现图文混排

    目前在unity实现图文混排的好像都是通过自定义字体然后在文本获取字符的位置,用图片替换掉图片标签,这样对于支持英文来说,并没有什么影响.然后对于中文来说就是一个相当麻烦的事了,毕竟图文混排多用于游戏 ...