弹簧查找方法注入参数

时间:2010-12-02 17:04:03

标签: spring

有没有办法使用Spring查找方法注入参数?例如,我希望能够实例化原型范围的bean,同时通过构造函数传递任意参数。

3 个答案:

答案 0 :(得分:3)

看起来这个重要的功能最终在Spring 4.1.0.RC2中添加了。我测试了它,它似乎工作。

它是作为JIRA票证SPR-7431 ("Passing lookup-method arguments to created bean constructor")的一部分添加的:

  

<查找法/>应该允许指定任意数量的参数。这些参数应该直接传递给新创建的bean的构造函数。

有关如何最终添加该功能的更多信息,this blog post是由打开JIRA票证的人编写的。

答案 1 :(得分:1)

您可以通过field / setter进样注入它们。 (请注意,构造函数注入受到spring的反对,尽管它是受支​​持的)

答案 2 :(得分:0)

总之,没有。 Spring确实支持称为“方法注入”的东西,但它与你的想法不同。 Spring也支持构造函数注入,但是你不是自己调用构造函数,Spring就是,并自己连接它。

相反,您可以使用反射来实例化类并自己传递任意参数:

Class<MyObject> clazz = MyObject.class; // this can be looked up or stored in a field, etc.
MyObject myObject = clazz.getConstructor(String.class, int.class)
                         .newInstance("arbitrary parameter", 42);