2013-09-27 90 views
5

我想要自動連接JDBC模板,並得到一個空指針異常(模板爲空)。可能是什麼問題呢?Autowire Jdbc模板

@Autowired 
template JdbcTemplate; 

這是我的應用程序上下文的xml:

<bean ..> 
    <mvc:annotation-driven /> 

      <context:component-scan base-package="igate.dto" /> 
       <context:component-scan base-package="igate.dao" /> 
        <context:component-scan base-package="igate.service" /> 
         <context:component-scan base-package="igate.controller" /> 
       <context:component-scan base-package="igate.logs" /> 
        <context:component-scan base-package="igate.testcases" /> 


    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      <property name="prefix" value="/"/> 
      <property name="suffix" value=".jsp" /> 
      </bean> 


    <bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 
     <property name="url" value="jdbc:oracle:thin:@172.21.17.5:1521:oraten" /> 
     <property name="username" value="lab01trg21" /> 
     <property name="password" value="lab01oracle" /> 
    </bean> 

    <bean id="template" class="org.springframework.jdbc.core.JdbcTemplate"> 
     <property name="dataSource" ref="ds"/> 
    </bean> 

</beans> 
+1

要開始你並不需要6'<組件掃描>'元素。您需要一個逗號分隔的值:'' –

+0

這是xml配置調度程序servlet上下文xml配置或根應用程序上下文初始值設定項xml配置?請記住,如果第一個爲true,則不能從根web應用程序上下文應用程序服務引用jdbc模板。 –

回答

3
  1. 您嘗試在注入豆是不是在Spring上下文;
  2. 沒有引領者的JdbcTemplate
  3. 您嘗試使用模板的構造函數模板injeted
5

代替鄰此代碼之前:

@Autowired 
template JdbcTemplate; 

您需要:

@Autowired 
    JdbcTemplate template ; 
0

此錯誤的一個原因是將自動裝配與手動混合 crea豆的重刑。

例如,您有一個自動裝載bean的服務類。

@Service 
public class CarService { 

    @Autowired 
    public JdbcTemplate jdbcTemplate; 

    // service code 
} 

但後來這一翻譯的

@Autowired 
private CarService carService; 

你這樣做:

CarService carService = new CarService();