A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴清源 中级黑马   /  2013-9-2 20:50  /  1281 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴清源 于 2013-9-3 10:17 编辑
  1. package com.wqYuan.test;

  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.util.Properties;

  5. public class BeenFactory {
  6. Properties proes = new Properties();
  7. public BeenFactory(InputStream ips) {
  8. try {
  9. proes.load(ips);
  10. } catch (IOException e) {
  11. // TODO 自动生成的 catch 块
  12. e.printStackTrace();
  13. }
  14. }

  15. public Object getBeen (String name){
  16. String className = proes.getProperty(name);
  17. Object bean = null;
  18. try {
  19. Class<?> clazz = Class.forName(className);
  20. bean = clazz.newInstance();
  21. } catch (ClassNotFoundException e) {
  22. // TODO 自动生成的 catch 块
  23. e.printStackTrace();
  24. } catch (InstantiationException e) {
  25. // TODO 自动生成的 catch 块
  26. e.printStackTrace();
  27. } catch (IllegalAccessException e) {
  28. // TODO 自动生成的 catch 块
  29. e.printStackTrace();
  30. }
  31. if (bean instanceof ProxyFactoryBean) {
  32. Object pro = null;
  33. ProxyFactoryBean proxy = (ProxyFactoryBean)bean;
  34. try {
  35. Advice advice = (Advice)Class.forName(proes.getProperty(className+".advice")).newInstance();
  36. Object target = Class.forName(proes.getProperty(className+".target")).newInstance();
  37. //System.out.println("utyhthtyj");
  38. proxy.setAdvice(advice);
  39. proxy.setTarget(target);
  40. } catch (InstantiationException e) {
  41. // TODO 自动生成的 catch 块
  42. e.printStackTrace();
  43. } catch (IllegalAccessException e) {
  44. // TODO 自动生成的 catch 块
  45. e.printStackTrace();
  46. } catch (ClassNotFoundException e) {
  47. // TODO 自动生成的 catch 块
  48. e.printStackTrace();
  49. }

  50. pro = proxy.getProxy();
  51. return pro;
  52. }

  53. return bean;
  54. }
  55. }
复制代码
这是BeanFactory的代码,运行main方法的时候提示advice空指针异常,我那配置文件没有写错啊
zzz=com.wqYuan.test.ProxyFactoryBean
zzz.target=java.util.ArrayList
zzz.advice=com.wqYuan.test.MyAdvice
传进去的字符串名称也是zzz。

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

3 个回复

倒序浏览
pro = proxy.getProxy();  里面没有传入advice 和 target
回复 使用道具 举报
没看大牛股
回复 使用道具 举报
熊纪达 发表于 2013-9-2 21:21
pro = proxy.getProxy();  里面没有传入advice 和 target

恩恩,谢谢啦,昨晚重新整理了一下,是我参数里的advice和target传入了它们配置里对应的键值了,现在程序可以运行了{:soso_e121:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马