2013-09-27 307 views
5

Tôi đang cố gắng tự động định dạng mẫu JDBC và tôi nhận được ngoại lệ con trỏ null (mẫu là null). Điều gì có thể là vấn đề?Mẫu AutoWire Jdbc

@Autowired 
template JdbcTemplate; 

Đây là tôi xml bối cảnh ứng dụng:

<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

Để bắt đầu bạn không cần 6 '' yếu tố. Bạn chỉ cần một với các giá trị được phân cách bằng dấu phẩy: '' –

+0

Đây có phải là xml config một bối cảnh servlet dispatcher xml không cấu hình hoặc cấu hình khởi tạo bối cảnh ứng dụng gốc xml config? Hãy nhớ nếu đầu tiên là đúng, bạn không thể tham khảo mẫu jdbc từ các dịch vụ ứng dụng ngữ cảnh webapp gốc. –

Trả lời

3
  1. bean bạn cố gắng tiêm vào không phải là trong bối cảnh mùa xuân;
  2. Không setter cho JdbcTemplate
  3. Bạn cố gắng sử dụng các mẫu trong các nhà xây dựng trước khi mẫu được injeted
5

Thay o mã này:

@Autowired 
template JdbcTemplate; 

Bạn cần:

@Autowired 
    JdbcTemplate template ; 
0

Một lý do cho lỗi này là trộn tự động với hướng dẫn sử dụng crea tion của đậu. Ví dụ:

Ví dụ, bạn có một lớp dịch vụ tự động phát hiện một bean.

@Service 
public class CarService { 

    @Autowired 
    public JdbcTemplate jdbcTemplate; 

    // service code 
} 

Nhưng sau đó intead của

@Autowired 
private CarService carService; 

bạn làm:

CarService carService = new CarService();