java - 空指针异常 - spring 3

标签 java spring spring-mvc

我在我的 applicationContext.xml 文件(Spring 3)中使用以下语句。

<bean name="loggingAutoProxy"
      class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> 

在此 applicationContext 文件中,当我尝试为 bean 属性名称和引用指定不同的名称时,它返回 null 对象。但是,如果我为名称和引用提供相同的值,则它可以正常工作/正确返回 bean 引用。这个问题是由于 org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator 造成的吗?如果是,如何解决这个问题?

这不起作用(在我的 java 代码中将 bean 引用返回为 null):

<bean id="cacheDelegate" class="com.srsa.wiradmin.delegate.CacheDelegate" > 
<property name="statusDBDAO"><ref bean="BMOStatusDBDAO" /></property> 
</bean> 

 <bean id="BMOStatusDBDAO" class="com.srsa.wiradmin.dao.StatusDBDAO">
        <property name="dataSource">
            <ref bean="BMOAdminDataSource" />
        </property>
</bean>
    <bean id="BMOAdminDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
                    destroy-method="close" lazy-init="default" autowire="default" dependency-check="default">
            <property name="driverClass" value="${jdbc.driver}" ></property>
            <property name="jdbcUrl" value="${admin.jdbc.url}" ></property>
            <property name="user" value="${admin.jdbc.user}" ></property>
            <property name="password" value="${admin.jdbc.password}" ></property>
            <property name="initialPoolSize" value="3" ></property>
            <property name="minPoolSize" value="3" ></property>
            <property name="maxPoolSize" value="25" ></property>
            <property name="acquireIncrement" value="1" ></property>
            <property name="acquireRetryDelay" value="1000" ></property>
            <property name="debugUnreturnedConnectionStackTraces" value="true" ></property>
            <property name="maxIdleTime" value="300" ></property>
            <property name="unreturnedConnectionTimeout" value="300000" ></property>
            <property name="preferredTestQuery" value="SELECT COUNT(*) FROM LOCALE_CODE" ></property>
            <property name="checkoutTimeout" value="300000" ></property>
            <property name="idleConnectionTestPeriod" value="600000" ></property>
</bean>

这有效(正确返回对象):

<bean id="cacheDelegate" class="com.srsa.wiradmin.delegate.CacheDelegate" > 
<property name="statusDBDAO"><ref bean="statusDBDAO" /></property> 
</bean> 

 <bean id="statusDBDAO" class="com.srsa.wiradmin.dao.StatusDBDAO">
        <property name="dataSource">
            <ref bean="BMOAdminDataSource" />
        </property>
</bean>

    <bean id="BMOAdminDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
                    destroy-method="close" lazy-init="default" autowire="default" dependency-check="default">
            <property name="driverClass" value="${jdbc.driver}" ></property>
            <property name="jdbcUrl" value="${admin.jdbc.url}" ></property>
            <property name="user" value="${admin.jdbc.user}" ></property>
            <property name="password" value="${admin.jdbc.password}" ></property>
            <property name="initialPoolSize" value="3" ></property>
            <property name="minPoolSize" value="3" ></property>
            <property name="maxPoolSize" value="25" ></property>
            <property name="acquireIncrement" value="1" ></property>
            <property name="acquireRetryDelay" value="1000" ></property>
            <property name="debugUnreturnedConnectionStackTraces" value="true" ></property>
            <property name="maxIdleTime" value="300" ></property>
            <property name="unreturnedConnectionTimeout" value="300000" ></property>
            <property name="preferredTestQuery" value="SELECT COUNT(*) FROM LOCALE_CODE" ></property>
            <property name="checkoutTimeout" value="300000" ></property>
            <property name="idleConnectionTestPeriod" value="600000" ></property>
</bean>

再见......

最佳答案

您的cacheDelegate bean 正在查找引用 ID statusDBDAO 的 bean ,但 DAO 上的 ID 实际上是 BMOStatusDBDAO .

关于java - 空指针异常 - spring 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19729074/

相关文章:

java - Spring @Value 注释总是评估为空?

java - Spring MVC : please explain difference between @RequestParam and @ModelAttribute

javascript - 如何使用spring mvc接收数组作为参数?

类的 Java 转换接口(interface)

java - 静态变量是否与 Class 类对象一起加载

java - Spring Webflux,如何转发到 index.html 以提供静态内容

java - 长时间运行的 HTTP 请求和线程同步

java - 允许用户从画廊中选择图像以上传到 Activity 中的 ImageView ?

java - 是否有包含 spring-core 3 的公共(public) Maven 存储库?

java - AMQP Spring Integration 错误处理