我想从普通班级获得会话。使用@Autowired没有效果。
public class TMessageHandlerFactory implements MessageHandlerFactory {
@Autowired
private HttpSession session;
@Override
public void data(InputStream data) {
int userId = (int)session.getAtrribute("key"); //session null
.... //do sth
}
}
Run Code Online (Sandbox Code Playgroud)
构造函数也不起作用
@Component
public class SMTPRunner implements ApplicationRunner {
@Autowired
private UserService userService; // userService can access
@Autowired
private HttpSession session; // session can't access
@Override
public void run(ApplicationArguments applicationArguments) throws Exception {
TMessageHandlerFactory myFactory = new TMessageHandlerFactory(session);
....
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过用SpringBeanFactory,也没用。
@Component
public class SpringBeanFactoryUtil implements ApplicationContextAware { …Run Code Online (Sandbox Code Playgroud)