Я разрабатываю веб-приложение с Spring MVC (4.2.3) и Servlet 3.0 API, поэтому нет web.xml.Spring MVC, Servlet 3.0: как создать ресурс-ref
Мой WebConfig.java выглядит следующим образом:
...
import javax.servlet.ServletContext;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {...})
public class WebConfig extends WebMvcConfigurerAdapter {
@Autowired
ServletContext servletContext;
}
Я создаю это весеннее приложение путем копирования из приложения Java с Servlet < 3.0, так что есть web.xml, который содержит этот раздел о источник данных:
<resource-ref>
<res-ref-name>jdbc/DefaultDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
</resource-ref>
Как создать такую установку в моем приложении Spring MVC, где нет никакого web.xml?
В то же время я взглянул на «Спецификацию сервлета Java версии 3.0». Это говорит о @Resource:
аннотаций @Resource используется для объявления ссылки на ресурс , такие как источник данных ... Это примечание эквивалентно объявлению ресурсов реф ...
@Resource пример:
@Resource private javax.sql.DataSource catalogDS;
public getProductsByCategory() {
// get a connection and execute the query
Connection conn = catalogDS.getConnection();
..
}
В примере кода выше, сервлета, фильтр или слушатель объявляет полевой каталогDS типа javax.sql.DataSource, для которого ссылка на источник данных вводится контейнером до того, как компонент становится доступным для приложения. Отображение JNDI источника данных определяется из имени поля «catalogDS» и типа (javax.sql.DataSource). Кроме того, ресурс catalogDS больше не должен определяться в дескрипторе развертывания.
К сожалению, я не знаю, как его использовать и как его подключить к Springs JDBCTemplate. Is
public class WebConfig extends WebMvcConfigurerAdapter {
нужная местность вообще?
Спасибо! Однако, насколько мне известно, javax.servlet.ServletContextListener является управляемым компонентом контейнера сервлета, и мне нужен javax.sql.DataSource в контексте приложения Spring. – swdhsn