栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用spring @Lookup批注?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用spring @Lookup批注?

@Lookup
public MyClass2 myClass2()
方法应用注释之前,请在@Lookup的Javadoc中阅读以下内容:

容器将通过CGLIB生成该方法的包含类的运行时子类,这就是为什么这种查找方法只能在容器通过常规构造函数实例化的bean上起作用的原因(即,查找方法无法替换从工厂方法返回的bean,而我们无法这样做)动态为其提供子类)。

因此,从以下代码中删除以下工厂方法样式Bean声明

ApplicationConfiguration:

  @Bean  public MyClass1 myClass1() {    return new ContentHolderTabPaneController();  }

并添加

@Component
注释,以使Spring实例化bean(还将
@Lookup
注释添加到方法中):

@Componentpublic class MyClass1 {  doSomething() {    myClass2();  }  //I want this method to return MyClass2 prototype  @Lookup  public MyClass2 myClass2(){    return null; // This implementation will be overridden by dynamically generated subclass  }}

现在,使myClass1bean脱离上下文,并且它的myClass2方法应该每次都被替换/重写以获取新的原型bean。

更新:

Using factory method declaration

实现带

@Lookup
注释的方法(“查找方法”)并不难。在没有
@Lookup
使你的配置类保持不变的情况下,现在MyClass1看起来像(实际上,如果
@Lookup
使用了Spring,则会在子类中生成类似的实现):

public class MyClass1 {  doSomething() {    myClass2();  }  //I want this method to return MyClass2 prototype  @Autowired  private ApplicationContext applicationContext;  public MyClass2 myClass2() {      return applicationContext.getBean(MyClass2.class);  }}

Spring

ApplicationContext
为你注入。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395204.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号