`
prodream
  • 浏览: 105636 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用Lookup方法注射方法

阅读更多

spring方法解决下面的问题:一个singleton bean A,在每次方法调用的时候都需要使用一个non-singleton bean B。而容器仅仅会一次性创建这个singleton bean A,因此,也仅有一次机会去设置它的属性。所以无法每次为bean A提供一个bean B的新实例属性。

通过放弃部分反向控制便可以解决这个问题,比如,bean A可以通过实现BeanFactoryAware,从而在需要的时候通过调用getBean("B")方法,向容器请求bean B的新实例。不过这种方法使运用代码耦合于spring。

而使用Lookup方法注射可以很好的解决这个问题。

Lookup方法注射指容器弄够在运行时重写Bean的抽象或具体方法,返回或创建容器中其他Bean实例。被创建的Bean通常是一个non-singleton bean(当然也可以是singleton的),在spring中,通过CGLIB修改客户端类上的二进制代码来实现这种注射。

包含方法直射的客户端类,应按如下形式定义抽象方法:

protected abstract SomeBean createSomeBean();

如果方法不是抽象的 ,spring会直接重写它。

配置如下:

<bean id="anotherBean" class="prodream.com.Bean_B" singleton="false"/>

<bean id="myBean" class=""prodream.com.Bean_A">

<lookup-method name="methodName"

bean="anotherBean"/>

</bean>

分享到:
评论

相关推荐

    requestUtils lookup方法简介

    requestUtils lookup方法简介

    lookup函数的使用

    "Excel Lookup 函数的使用和经典查找方式" Lookup 函数是 Excel 中最常用的查找函数之一,它可以帮助用户快速地查找和匹配数据。本文将详细介绍 Lookup 函数的用法、语法、参数意义、应用实例,以及经典的条件查找...

    Delphi中ADOQuery使用了lookup字段后出现未知错误解决办法

    ### Delphi中ADOQuery使用了lookup字段后出现未知错误解决办法 在Delphi开发环境中,使用ADOQuery组件处理数据库查询时,经常会遇到一些常见的问题,尤其是涉及到lookup字段时。lookup字段通常用于显示一个表中的...

    NetBeans lookup的例子

    5. **查找和使用服务**:在需要使用`MyService`的地方,添加代码进行Lookup查询,并调用找到的服务实例的方法。 通过以上步骤,你就完成了一个基本的NetBeans Lookup查询示例。在实际开发中,Lookup机制可以用于...

    vc错误查看工具lookup

    用户只需输入或复制粘贴错误代码,Lookup就能快速返回相关的错误信息,包括错误类型、错误原因以及可能的解决方法。 使用Lookup工具可以节省开发者大量的时间,避免在文档和搜索引擎中反复搜索,提高开发效率。对于...

    【含源码和addin】RevitLookup 2020

    (如果不能正常使用,请用Visual Studio打开源码,将项目所需的引用更新到正确的路径,编译生成RevitLookup.dll,在与RevitLookup.addin复制到C:\ProgramData\Autodesk\Revit\Addins\2019下即可)

    深入理解Spring中的Lookup(方法注入)

    为了解决这个问题,我们可以使用Lookup方法注入。首先,我们需要移除Class A中的@Autowired注解,然后创建一个返回Class B的新方法。例如: ```java @Component public class ClassA { public void printClass() {...

    RevitLookup-2019.0.0.3.rar

    RevitLookup的使用方法相对简单。首先,你需要将压缩包"RevitLookup-2019.0.0.3"解压,其中包含了必要的DLL文件和安装说明。然后,将这些文件复制到Revit的插件目录下,通常是在"Add-Ins"子目录内。重启Revit后,你...

    RevitLookup 2020.0.0.1

    RevitLookup的使用方法通常包括以下步骤: 1. **安装**:通过运行msi安装包,将RevitLookup集成到Revit环境中。 2. **启动**:在Revit中,通过插件菜单或快捷键启动RevitLookup。 3. **选择元素**:在Revit模型中...

    Revit Lookup2017-2020.zip

    5. **安装方法**:将插件文件添加到“C:\ProgramData\Autodesk\Revit\Addins”的对应版本文件夹下,意味着Revit Lookup的安装过程相对简单,只需复制和粘贴即可,无需复杂的配置步骤。 6. **提高效率**:对于Revit...

    Lookup Table导入表格

    在 Matlab 工作空间中,可以使用以下命令将数据导入到 Lookup Table 中: ```matlab 数据 = xlsread('data.xlsx'); reshape(数据, 2, 12); ``` 其中,数据是用户自定义的变量名,用于存储导入的数据。reshape 函数...

    RevitLookup-2021.0.0.13

    3. **Revit API**:学习Revit提供的各种类、方法和事件,如FamilyManager、ElementId、Parameter等,以及如何创建和修改Revit模型。 4. **图元和族**:理解Revit中的图元(Element)、类型(Type)和族(Family)的...

    LOOKUP函数处理内存数组

    在"内存数组的处理_LOOKUP().xls"文件中,你可能发现了一些示例,展示了如何利用LOOKUP函数处理内存数组,以及如何与其他Excel函数结合使用,以解决实际问题。通过对这些示例的分析和实践,你可以更深入地理解LOOKUP...

    Revit2020 二次开发工具 AddinManager 和 RevitLookup 直接使用

    RevitLookup的使用非常简单,只需在Revit中调用它,就可以选择模型中的任意元素进行检查。 安装这两个工具的方法是:首先,下载提供的压缩包文件,然后将其解压缩。在解压后的文件中,你会看到4个文件,这些都是...

    RevitLookup2021.rar

    2. **实时交互**:用户可以直接在Revit界面中选择一个元素,然后在RevitLookup窗口中查看其详细信息,无需编写代码或使用复杂的调试器。这大大简化了问题诊断和性能优化的过程。 3. **参数值检查**:开发者可以查看...

    RevitLookup-2016.0.0.6 已编译 直接使用

    revit开发必备工具 本包中是已经编译过的文件,可以直接使用 以下是编译过程 和 原始插件下载地址------------------------- 下载 RevitLookup for Revit 2016 ...

    RevitLookup-2020.0.0.4.zip

    为了方便使用,可以在Revit的“附加模块”菜单中找到RevitLookup的入口。 总的来说,RevitLookup-2020.0.0.4.zip是一个针对Revit用户的实用工具,特别是对于那些参与Revit二次开发的人员。它简化了模型数据的查看...

Global site tag (gtag.js) - Google Analytics