2013-09-27 10 views
5

Próbuję automatycznie skasować szablon JDBC i otrzymuję wyjątek wskaźnika pustego (szablon ma wartość null). Jaki może być problem?Szablon Autowire Jdbc

@Autowired 
template JdbcTemplate; 

To mój kontekst aplikacji 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

Na początek nie trzeba 6 '' elementy. Potrzebujesz tylko jednego z wartościami oddzielonymi przecinkami: '' –

+0

Czy to xml config, kontekst serwletu dyspozytora xml config lub konfigurator kontekstu aplikacji root xml config? Pamiętaj, że jeśli pierwsza jest prawdą, nie możesz odwoływać się do szablonu jdbc z usług kontekstowych aplikacji webapp root. –

Odpowiedz

3
  1. Fasola spróbować wstrzyknąć w nie jest w kontekście wiosennej;
  2. Nie seter dla JdbcTemplate
  3. można spróbować użyć szablonu w konstruktorze przed szablon jest injeted
5

Zamiast o ten kod:

@Autowired 
template JdbcTemplate; 

potrzebujesz:

@Autowired 
    JdbcTemplate template ; 
0

Jednym z powodów tego błędu jest mieszanie autowiring z instrukcją crea fasola.

Na przykład masz klasę usług, która autoprzyczynia komponent bean.

@Service 
public class CarService { 

    @Autowired 
    public JdbcTemplate jdbcTemplate; 

    // service code 
} 

Ale później intead

@Autowired 
private CarService carService; 

zrobić:

CarService carService = new CarService();