Servlet 3.0 Spring Конфигурация Java JNDI

Я пытаюсь реплицировать атрибут resource-ref web.xml в моих веб-приложениях spring WebApplicationInitializer для настройки JNDI.

Как бы это сделать:

<resource-ref>
<description>Connection Pool</description>
<res-ref-name>jdbc/LocalCheddar</res-ref-name>
<res-type>javax.sql.Datasource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

в java config, а не в xml?

Ответ 1

Заглянув в спецификацию для сервлета 3.0, я нашел аннотацию @Resource. Вместо этого в моем классе WebApplicationInitializer он теперь находится в моем классе WebConfig.

@Bean
@Resource(name="jdbc/MyDB")
public DataSource dataSourceLookup() {
    final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
    dsLookup.setResourceRef(true);
    DataSource dataSource = dsLookup.getDataSource("java:comp/env/jdbc/MyDB");
    return dataSource;
}