Вы можете использовать @Configurable
в сочетании с <context:load-time-weaver />
и использовать @Autowired
в своих сервлетах. Это позволяет обрабатывать классы, которые не создаются экземпляром в Spring, пружиной.
Вы также можете использовать другой подход - в методе init(..)
вашего сервлета:
ApplicationContext ctx =
WebApplicationContextUtils.getWebApplicationContext(servletContext);
if (ctx != null) {
ctx.getAutowireCapableBeanFactory().autowireBean(this);
}
Это установит все зависимости пружины (где используется @Autowired
/ @Resource
). Это будет работать в случае, если классы обслуживания определены весной, что, как я полагаю, имеет место.
С точки зрения тестируемости - если нет контекста веб-приложения, ничего не произойдет, и вы можете вручную установить свои зависимости. При необходимости вы также можете высмеивать контекст приложения, в зависимости от того, как вы тестируете свои сервлеты. .