相关疑难解决方法(0)

如何使用spring @Lookup注释?

我需要从singleton获得原型类.我发现方法注入是可行的方法,但我真的不知道如何使用spring @Lookup注释.

我是依赖注入的新手,我选择使用注释配置,所以我想继续这个方向.

我发现@Lookup注释最近才被添加(https://spring.io/blog/2014/09/04/spring-framework-4-1-ga-is-here),但我找不到任何地方如何用它.

所以,这是简化的例子

配置类:

@Configuration
@Lazy
public class ApplicationConfiguration implements ApplicationConfigurationInterface {

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

  @Bean
  @Scope("prototype")
  public MyClass2 myClass2() {
    return new SidebarQuickMenuController();
  }
}
Run Code Online (Sandbox Code Playgroud)

以下是类示例:

public class MyClass1 {
  doSomething() {
    myClass2();
  }

  //I want this method to return MyClass2 prototype
  public MyClass2 myClass2(){
  }
}
Run Code Online (Sandbox Code Playgroud)

如何使用@Lookup注释做到这一点?

java spring dependency-injection

13
推荐指数
2
解决办法
3万
查看次数

标有原型范围的Bean在Spring中不起作用

我有两个豆,父母和孩子.子bean我已声明为Protoype范围.
我想新的子对象用于调用Parent类中的任何子方法.例如.在下面的例子中,我希望语句1调用方法sayHi对不同的子对象和语句2调用sayHi1对不同的子对象.

一种方法是在调用任何子方法之前实现ApplicationContextAware并获取新的子对象context.getBean("").但我不想这样做.

还有其他选择吗?

@Component
public class Parent{

    @Autowired
    Child child;

    public void sayHello(){     
        child.sayHi();           -------------- (1)
    }

    public void sayHello1(){    
        child.sayHi1();          --------------- (2)
    }
}

@Component
@Scope(value=BeanDefinition.SCOPE_PROTOTYPE)
public class Child{

    public void sayHi(){
        System.out.println("Hi Spring 3.0");

    }

    public void sayHi1(){
        System.out.println("Hi1 Spring 3.0 ");      
    }

}
Run Code Online (Sandbox Code Playgroud)

java spring scope prototype-scope

5
推荐指数
2
解决办法
5615
查看次数