当前位置: 代码迷 >> Java Web开发 >> Spring注入解决思路
  详细解决方案

Spring注入解决思路

热度:3020   发布时间:2013-02-25 21:14:33.0
Spring注入
做一个简单的IOC注入:但就是注不进去,dataSource,userManager都报空指针(applicationContext.xml读入内存没有问题),具体代码如下:
页面中用一个连接访问到servlet,如下:
其中已经配置了dataSource和userManager的set方法
Java code
public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        try {        dataSource.getConnection();        } catch (SQLException e) {}        userManager.addUser(null);            }

applicationContext.xml
XML code
<!-- 配置连接池 -->    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">        <property name="driverClassName">            <value>com.mysql.jdbc.Driver</value>        </property>        <property name="url">            <value>jdbc:mysql://localhost/assignment</value>        </property>        <property name="username">            <value>root</value>        </property>        <property name="password">            <value>root</value>        </property>    </bean>        <!-- Servlet中配置UserManager -->    <bean id="userManager" class="com.dao.impl.UserManagerImpl" />        <bean name="/addUserServlet" class="com.servlet.addUserServlet">        <property name="dataSource" ref="dataSource"></property>        <property name="userManager" ref="userManager"></property>    </bean>

web.xml中:
XML code
<context-param>      <param-name>contextConfigLocation</param-name>      <param-value>classpath*:applicationContext.xml</param-value>  </context-param>    <listener>      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>


望高手们给看看。急~~~~~~~~~谢谢

------解决方案--------------------------------------------------------
呵呵, 配置问题。

<!-- Servlet中配置UserManager -->
<bean id="userManager" class="com.dao.impl.UserManagerImpl" />

<bean name="/addUserServlet" class="com.servlet.addUserServlet">
<property name="dataSource" ref="dataSource"></property>
<property name="userManager" ref="userManager"></property>
</bean>
===============================================
addUserServlet是在web.xml配置的, 一个请求过来, 是由JSP容器初始化了这个servlet, 所以执行的servlet跟spring配置的那个servlet没点关系, 自然就空指针了呵呵。


------解决方案--------------------------------------------------------
探讨
楼主,你的dataSource和userManager根本就没有注入进来,所以在调用
dataSource.getConnection()和userManager.addUser()就报空指针异常

在servlet中输出一下System.out.println(userManagerImpl)值是null   
  相关解决方案