sping bean的id,name引起的 No bean named 'role' is defined

在项目中由于使用jbpm4整合spring
在jbpm4.4使用了AssignmentHandler获取spring的bean.

基于注释
@Resource(name="userService")
private TUserService userService;

是取不到spring的bean.由于spring 采取 BeanFactory机制,要使用spring管理的bean,对应的AssignmentHandler实现类也必须交给spring管理。

在jbpm3中,spring提供一个整合的jar包。
但是这个jar包不适合jbpm4.

干脆使用xml

spring配置文件里添加了基于xml的bean定义和引用
<bean id="role"
		class="com.shangwang.workFlow.UserRoleUtil">
	<property name="sqlMapClient" ref="sqlMapClient" />
</bean>


可是程序运行userRole还是为null
No bean named 'role' is defined   


bean没有定义
一般在使用开源框架的时候,排解思路是
1.看代码。2.看xml文件。3.看配置文件。

看看配置文件,有个属性引起我的注意
default-autowire="byName"


我试着修改xml文件
<bean name="role" id="role"
		class="com.shangwang.workFlow.UserRoleUtil">
		<property name="sqlMapClient" ref="sqlMapClient" />
	</bean>


解决问题。
查看相关问题
《Spring专业开发指南》里面讲到这个事情。根据作者的意思,name是id的一个补充。

你可能感兴趣的:(java,spring,xml,bean,配置管理)