Как ввести зависимости в HttpSessionListener, с помощью Spring?

Попробуйте что-то вроде этого:

class ABC():
     def __init__(self, debugFlag):
          self.debugFlag = debugFlag

     def some_function(self):
         if self.debugFlag:
               print('Debug on\n')
         else:
               print('Debug off\n')


abc_object = ABC(False)

def check_choice():
  if str(choice) == '1':
     abc_object.debugFlag = True
     abc_object.some_function()

  elif str(choice) == '2':
     abc_object.debugFlag = False
     abc_object.some_function()
  else :
     print('Invalid input')

while True:
    choice = input('Type 1 to enable debugging, 2 to disable debuigging : ')
    check_choice()

Резюме:

При инициализации класса требуется 1 обязательный аргумент debugFlag, True или False.

Когда вы определяете функцию из класса, вы должны использовать аргумент «self». Объяснение того, почему это

«если self.debugFlag» такое же, как если бы «self.debugFlag истинно: 116]

Мы создаем экземпляр ABC и сохраняем его в переменной abc_object. Мы передаем ему значение по умолчанию для debugFlag, в данном случае False.

Затем мы вводим некоторую логику для проверки состояния debugFlag, а затем выполняем некоторую функцию в зависимости от результата нашей логики.

Надеюсь, это поможет. Дайте мне знать, если вам нужны дальнейшие разъяснения.

24
задан Eyal 12 May 2013 в 17:05
поделиться

1 ответ

Вы можете объявить свой HttpSessionListener как bean-компонент в контексте Spring и зарегистрировать посредник делегирования в качестве фактического слушателя в web.xml, что-то вроде этого:

public class DelegationListener implements HttpSessionListener {
    public void sessionCreated(HttpSessionEvent se) {
        ApplicationContext context = 
            WebApplicationContextUtils.getWebApplicationContext(
                se.getSession().getServletContext()
            );

        HttpSessionListener target = 
            context.getBean("myListener", HttpSessionListener.class);
        target.sessionCreated(se);
    }

    ...
}
8
ответ дан axtavt 28 November 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: