[英]Spring Groovy DSL anonymous inner bean with constructor
給定這兩個bean:
myMessageAdapter(MessageListenerAdapter) { bean ->
bean.constructorArgs = [ref('jmsReceiver')]
defaultListenerMethod = 'processMessage'
}
listenerContainer(DefaultMessageListenerContainer) {
connectionFactory = ref('connectionFactory')
destinationName = "MyDest"
messageListener = ref('myMessageAdapter')
}
我想用匿名內部bean替換myMessageAdapter
。
嘗試過:
listenerContainer(DefaultMessageListenerContainer) {
connectionFactory = ref('connectionFactory')
destinationName = "MyDest"
messageListener = { MessageListenerAdapter bean ->
bean.constructorArgs = [ref('jmsReceiver')]
defaultListenerMethod = 'processMessage'
}
}
但是它失敗並顯示“無法在空對象上設置屬性'constructorArgs'”
如何傳遞構造函數參數?
當您查看BeanBuilder的源代碼和setPropertyOnBeanConfig方法時,我認為這是不可能的
實現此目的的方法是在bean閉包內設置類:
listenerContainer(DefaultMessageListenerContainer) {
connectionFactory = ref('connectionFactory')
destinationName = "MyDest"
messageListener = { bean ->
bean.beanClass = MessageListenerAdapter
bean.constructorArgs = [ref('jmsReceiver')]
bean.defaultListenerMethod = 'processMessage'
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.