spring Batch中bean被多次代理的问题

今天debug一个项目的时候,发现很奇怪的日志,一个bean会多次反复被代理。
DEBUG [main][org.springframework.aop.framework.JdkDynamicAopProxy:113] - Creating JDK dynamic proxy: target source is PlaceholderTargetSource for target bean 'lazyBindingProxy.lazyBindingProxy.lazyBindingProxy.itemReader'
DEBUG [main][org.springframework.aop.framework.JdkDynamicAopProxy:113] - Creating JDK dynamic proxy: target source is PlaceholderTargetSource for target bean 'lazyBindingProxy.lazyBindingProxy.itemReader'
DEBUG [main][org.springframework.aop.framework.JdkDynamicAopProxy:113] - Creating JDK dynamic proxy: target source is PlaceholderTargetSource for target bean 'lazyBindingProxy.itemReader'

经过多方测试发现罪魁祸首就是下面这段声明
	<beans:bean class="org.springframework.batch.core.scope.StepScope" />

一个项目中如果出现多次声明,就会导致bean被代理多次。删除项目中的重复声明,问题解决。
根据spring batch官方定义,这个声明只是为了让bean延迟绑定,不知为何会出现这种循环延迟绑定。
http://static.springsource.org/spring-batch/reference/html/configureStep.html#step-scope

猜你喜欢

转载自rion.iteye.com/blog/1751576
今日推荐