ChinaSoldier 2008-10-05 15:50
浏览 204
已采纳

【疑问】关于IOC容器设计的疑惑

看了网上对于IOC容器优点讨论的很多,但是仍是没有切身体会,拿来使用的时候,发现有以下疑惑:

1、某个bean的属性或者依赖的构造参数,不适合定义为一个bean该怎么办。
在使用ioc的时候,对于引用,基本上都是定义为引用其他bean。但是在项目中,bean依赖的某些引用类型参数确实不适合做成一个bean,这时该如何处理。
能想到的就是,获取bean的时候传入运行时参数。类似于如下定义
public Object getBean(Object key, Object ... runtimeParas);
但是根据上面的处理后,发现又会有如下问题---即某个bean所依赖的bean也需要传入运行时参数,这样就无法完成自动装配~

2、对于ioc容器定义的时候是否定义一些全局的上下文,供所有的bean使用呢,类似于如下定义
public Object getIocContext(String contextKey);

  • 写回答

1条回答 默认 最新

  • wangxin0072000 2008-10-05 23:43
    关注

    第一个问题:如果你发现你的bean不适合ioc管理,那么只能说明你的代码不够标准,或者说不符合ioc的要求,请重构。特别是Spring2.5以后bean类型都可以定了,我真想不通还有什么理由不适合ioc管理。
    对于第二点:这个需求是有的,比如在Spring与其他web MVC框架集成的时候在控制器中调用Spring IOC 管理的bean就要通过Spring 的Context获取。如果你想自己实现一套IOC而不是使用Spirng的IOC,那么你至少应该知道IOC其实就是一个工厂模式你给这个工厂一个bean的名字,它传给你一个产品(bean),它怎么知道传什么呢?显然是通过getApplicationContext这种方式。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型