我有两个豆,父母和孩子.子Bean我已声明为Protoype范围.
我想新的子对象用于调用Parent类中的任何子方法.例如.在下面的例子中,我希望语句1调用方法sayHi对不同的子对象和语句2调用sayHi1对不同的子对象.
一种方法是在调用任何子方法之前使用context.getBean(“”)实现ApplicationContextAware并获取新的子对象.但我不想这样做.
还有其他选择吗?
@Componentpublic 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 "); }}
最佳答案修复只是将原型bean标记为作用域代理,这意味着当你将较小范围的bean注入较大的范围时(比如将原型注入单例中的情况)然后代理bean的注入将被注入到更大的范围中,当通过代理调用bean的方法时,代理会理解范围并将适当地做出响应.@Component@Scope(value=BeanDeFinition.ScopE_PROTOTYPE,proxyMode=ScopedProxyMode.TARGET_CLASS)public class Child{
这是一个reference
另一个选择可能是使用here所述的称为查找方法注入的东西 总结
以上是内存溢出为你收集整理的java – 标记为原型范围的Bean在Spring中不起作用全部内容,希望文章能够帮你解决java – 标记为原型范围的Bean在Spring中不起作用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)