java - Linux 上的循环引用

标签 java spring

我的程序中有一个循环引用。我认为我的程序没有问题。它可以在windows上运行。当我把它放在 linux 上时,它会导致异常。

下面是错误日志:

org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'customGroupDataManager': 
Requested bean is currently in creation: Is there an unresolvable circular reference?`

下面是我的代码:

<bean id="customUserDataManager" lazy-init="true" class="com.hand.hap.activiti.manager.CustomUserDataManager">
    <constructor-arg ref="processEngineConfiguration"/>
</bean>

<bean id="customBehaviorFactory" class="com.hand.hap.activiti.custom.CustomBehaviorFactory"/>

<bean id="activitiBeanProvider" class="com.hand.hap.activiti.custom.ActivitiBeanProvider"/>

<bean id="notificationListener" class="com.hand.hap.activiti.listeners.NotificationListener"/>


<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    <property name="dataSource" ref="dataSource"/>
    <property name="transactionManager" ref="transactionManager"/>
    <property name="databaseSchemaUpdate" value="true"/>

    <property name="mailServerHost" value="smtp.126.com"/>
    <property name="mailServerPort" value="25"/>
    <property name="mailServerUsername" value="hap_dev@126.com"/>
    <property name="mailServerPassword" value="hapdev11"/>

    <property name="asyncExecutorActivate" value="true"/>

    <property name="dbIdentityUsed" value="false"/>

    <property name="activityBehaviorFactory" ref="customBehaviorFactory"/>

    <property name="groupDataManager" ref="customGroupDataManager"/>
    <property name="userDataManager" ref="customUserDataManager"/>

    <property name="beans" ref="activitiBeanProvider"/>

    <property name="customDefaultBpmnParseHandlers" >

        <list>
            <bean class="com.hand.hap.activiti.custom.AddListenerUserTaskParseHandler">
                <constructor-arg index="0" value="create"/>
                <constructor-arg index="1" ref="notificationListener"/>
            </bean>
        </list>
    </property>
</bean>

最佳答案

是的,有:

customUserDataManager 需要 processEngineConfiguration,而 processEngineConfiguration 又需要 customUserDataManager,循环就开始了。

关于java - Linux 上的循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40015492/

相关文章:

java - Spring JMS 消费者应用程序

javascript - 如何将输入标签更改为文本区域标签

java - Hibernate(映射)ClassNotFoundException

spring - 在服务中捕获spring事务异常

java - 使用 Selenium 在没有 Select 标签的情况下自动化下拉框

java - 如何通过 Java 中的最小增量更改 float ?

java - 部署到 Bintray 三天后,我笔记本电脑上的 Gradle 无法解析应该可用的 Artifact

java - 更改 R.java 文件内容

java - ClassNotFoundException 异常

java - PowerMock,模拟一个静态方法,然后在所有其他静态上调用真实方法