我想要实现的是等效的Groovy DSL弹簧配置:
<bean id="myBean" class="com.example.SomeBeanWithConstructorArgs">
<constructor-arg>
<bean class="com.example.InnerBean">
<property name="someService" ref="someService"/>
</bean>
</constructor-arg>
</bean>
根据docs,您只需将构造函数参数传递给顶级闭包中的bean定义方法调用:beanName(type, constructor-args) // parens optional
但是需要传递的不是值,而是bean的定义。
我知道我可以将bean作为contructor-arg传递为顶层,命名为bean,然后使用ref将其传递给另一个bean,如下所示:
myNamedBean(com.example.InnerBean) {
someService = ref('someService')
}
myBean(com.example.SomeBeanWithConstructorArgs, ref('myNamedBean'))
但我真的需要com.example.InnerBean
成为一个匿名的内部bean。
有没有办法实现这个目标?
提前致谢。