2012-06-08 4 views
0

У меня есть этот рабочий код Java, которые служат в качестве "источника данных":JDBC Datasource возвращение NULL

public final class PMF { 
     static Driver driver = null; 
    static String url = "jdbc:jiql://local"; 

    static Properties props = new Properties(); 

    static { 
     String password = "jiql"; 
     String user = "admin"; 
     props.put("user",user); 
     props.put("password",password); 
     try { 
      Class clazz = Class.forName("org.jiql.jdbc.Driver"); 
      driver = (Driver) clazz.newInstance(); 
     } catch (Exception e){ 
      e.printStackTrace(); 
     } 
    } 

    public static Connection get() { 
     try{ 
      return driver.connect(url,props); 
     } catch (java.sql.SQLException e){ 
      e.printStackTrace(); 
     } 
     return null; 
    } 
} 

Когда я попытался адаптировать этот код для Spring на код ниже:

jdbc.properties

jdbc.driverClassName=org.jiql.jdbc.Driver 

# development 
jdbc.url=jdbc:jiql://local 
jdbc.username=admin 
jdbc.password=jiql 

applicationContext.xml

<!-- placeholders --> 
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations" value="/WEB-INF/jdbc.properties"/> 
</bean> 

<!-- data source --> 
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}"/> 
    <property name="url" value="${jdbc.url}"/> 
    <property name="username" value="${jdbc.username}"/> 
    <property name="password" value="${jdbc.password}"/> 
</bean> 

"DataSource" получает нуль, когда я делаю это в DAO:

@Autowired 
private DataSource dataSource; 

Что может быть причиной DataSource быть нулевым?

+0

Возможно, это очевидно, но вы правильно импортировали DataSource? – Thihara

+0

Выполняете ли вы проверку компонентов? Является ли создание DAO весной? –

+0

@DaveNewton Да, у меня это в контексте весны: \t <контекст: annotation-config /><контекст: компонент-сканирование base-package = "com.appcloem.server" /> – xybrek

ответ

1

Похоже, что это проблема DAO, а не проблема JDBC. Я снова создал приложение, используя Spring STS, и все поработало.

+0

Удивительный человек, которого ты сделал мой день! :) – Madara

Смежные вопросы