могу ли я каким-то образом вводить объекты непосредственно в сервлет с помощью @Autowired?

У меня есть несколько сервлетов и несколько сервлетов websocket в моем Java-приложении.

Я использую последнюю стабильную структуру Spring.

что я знаю, так это то, что, поскольку сервлеты не вызываются другим bean-компонентом, они не могут быть внедрены, и мне нужно получить applicationContext и использовать getBean для получения необходимых объектов.

это правда?

или я могу как-то использовать @Autowired в сервлетах?

поэтому я хочу иметь возможность сделать следующее:

@ServerEndpoint(value="/ServConnect")
public class ServConnect  {
@Autowired UserDb userDb;

Вместо

@ServerEndpoint(value="/ServConnect")
public class ServConnect  {

UserDb userDb;

public void ServConnect() {
  // get application context somehow
 userDb = appCtx.getBean("userDb");
}

Спасибо


person ufk    schedule 05.11.2013    source источник
comment
Пожалуйста, предоставьте свою версию Spring, последняя стабильная версия может сильно отличаться во времени.   -  person Eel Lee    schedule 05.11.2013
comment
Похоже, на него уже был дан ответ: stackoverflow.com/questions/11843690/autowiring-in -servlet Лично я бы использовал SpringMVC, который позволит вам легко автоматически подключать объекты к вашим контроллерам. Хотя, если это не ваше решение, ссылка выше может помочь   -  person cowls    schedule 05.11.2013
comment
я использую весенний фреймворк 3.2.4   -  person ufk    schedule 05.11.2013
comment
в сервлете websocket у меня нет инициализации и ServletConfig, поэтому ответ, который вы поставили, отвечает на вопрос, является ли это обычным сервлетом. а как насчет сервлетов веб-сокетов?   -  person ufk    schedule 05.11.2013
comment
Ответ таков: если Spring не управляет созданием экземпляра вашего класса ServConnect, он не может ничего внедрить.   -  person Sotirios Delimanolis    schedule 05.11.2013