【发布时间】:2012-11-27 23:10:51
【问题描述】:
我有两个 bean,Parent 和 Child。我已将子 bean 声明为原型范围。
我希望新的子对象用于调用父类中的任何子方法。例如。在下面的示例中,我希望语句 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 ");
}
}
【问题讨论】:
-
如果是 xml 配置,那么您将使用查找方法,但我相信这在注释中尚不可用。 stackoverflow.com/questions/3891997/…
标签: java spring scope prototype-scope