Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何动态注入Springbean(原型范围)_Java_Spring_Dependency Injection_Factory - Fatal编程技术网

Java 如何动态注入Springbean(原型范围)

Java 如何动态注入Springbean(原型范围),java,spring,dependency-injection,factory,Java,Spring,Dependency Injection,Factory,我使用的是Spring3.1.1,在我的业务逻辑中,我有一个循环,每次迭代都需要一个新的Springbean实例(原型范围) 最好的方法是什么?我必须创建我自己的BeanFactory类,我可以将它一次性注入到我的类中,并在每次请求时调用它来生成bean吗?在查看时,似乎暗示我应该使用ApplicationContext。然而,使用ApplicationContext使我的代码依赖于Spring 对于这样的事情,最好的方法是什么?Spring是否已经提供了一个我可以利用的工厂?我认为您应该使用S

我使用的是Spring3.1.1,在我的业务逻辑中,我有一个循环,每次迭代都需要一个新的Springbean实例(原型范围)

最好的方法是什么?我必须创建我自己的BeanFactory类,我可以将它一次性注入到我的类中,并在每次请求时调用它来生成bean吗?在查看时,似乎暗示我应该使用ApplicationContext。然而,使用ApplicationContext使我的代码依赖于Spring


对于这样的事情,最好的方法是什么?Spring是否已经提供了一个我可以利用的工厂?

我认为您应该使用Spring。春天能满足你的需要。您可以使用一个方法从应用程序上下文中查找特定类型的bean。所以如果你把那个豆子做成原型。然后,当您调用这个特殊方法时,将返回您想要的bean的一个新实例


您将在详细信息

ApplicationContext
中找到它。你不必把它注入你的课堂;您可以实例化一个,并使用它来创建bean并连接它们的依赖关系


我不理解“使用ApplicationContext使我的代码依赖于Spring”这句话。是的,它理解。您认为DI值不值得?

您可以使用自定义作用域并制作注入bean代理,并在自定义作用域bean上侦听一些可以注入底层代理bean的动态事件

怎么样?很好。正是我想要的。现在我想起来了,我记得几年前用过它,但不记得它是什么。DI绝对值得。但是Spring并不是唯一存在的DI容器,没有人说它是。问题是关于Spring.Touché的。在我看来,很明显,我在寻找一个独立于容器的解决方案,但我从未在问题中明确指出这一点。我认为独立于容器的解决方案是不可能的,除非你尽可能地包装所有内容,并对自己隐藏它是Spring或Guice的事实。就我个人而言,我看不出有什么意义。当你发现自己发布了一个以“我认为你应该同意”开头的“答案”时,发表评论我认为你不知怎么错过了问题的关键点,因为这个问题是在征求建议!因此,没有什么是绝对正确或可用的。根据上下文和有用性,我们必须选择一种方法!这就是为什么答案是这样开始的!谢谢你的建议!