У меня есть этот рабочий код 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 быть нулевым?
Возможно, это очевидно, но вы правильно импортировали DataSource? – Thihara
Выполняете ли вы проверку компонентов? Является ли создание DAO весной? –
@DaveNewton Да, у меня это в контексте весны: \t <контекст: annotation-config /><контекст: компонент-сканирование base-package = "com.appcloem.server" /> – xybrek