Здесь много чего происходит. Во-первых, вам не нужен ресурс-ref в вашем файле web.xml, если вы не позволите серверу приложений управлять источником данных. Это полезно, если вы используете что-то вроде IBM WAS или Apache Tomcat и задаете параметры источника данных в конфигурации вашего сервера. Если вы сделаете это, вы захотите сохранить ссылку на ресурс и добавить фабричный бин jndi:
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"><value>java:comp/env/jdbc/myOracle</value></property>
</bean>
По совпадению, я почти уверен, что ваша установка будет работать сейчас, если вы просто добавите этот компонент.
Исходя из того, что у вас есть, или если вы используете фабричный бин jndi, все, что вам нужно сделать, это автоматически связать боб оттуда:
@Autowired
@Qualifier("myDataSource")
DataSource dataSource;
Если вы хотите проверить состояние вашего компонента, вы всегда можете реализовать InitializingBean
, что заставит вас реализовать afterPropertiesSet
@Override
public void afterPropertiesSet() throws Exception {
Assert.notNull(dataSource);
}
Хотя 1 @ Autowired` должен пройти через исключение, если он не может автоматически подключаться по умолчанию.
Стоит также отметить, что лучше использовать конструктор:
@Autowired
public MyClass(@Qualifier("myDataSource") DataSource dataSource) {
this.dataSource = dataSource;
}