在springboot项目中有一个消息处理类,要在其中获取到httpSession,用@Autowired获取不到。publicclassTMessageHandlerFactoryimplementsMessageHandlerFactory{@AutowiredprivateHttpSessionsession;@Overridepublicvoiddata(InputStreamdata){intuserId=(int)session.getAtrribute("key");//这里的session为空....//插入数据}}如果用构造函数传过来也不行。@ComponentpublicclassSMTPRunnerimplementsApplicationRunner{@AutowiredprivateUserServiceuserService;//不明白为什么这个可以获取到@AutowiredprivateHttpSessionsession;//这个却不行@Overridepublicvoidrun(ApplicationArgumentsapplicationArguments)throwsException{TMessageHandlerFactorymyFactory=newTMessageHandlerFactory(session);....}}即使使用SpringBeanFacotryUtil(implementsApplicationContextAware)也不行。@ComponentpublicclassSpringBeanFactoryUtilimplementsApplicationContextAware{privatestaticApplicationContextapplicationContext;@OverridepublicvoidsetApplicationContext(ApplicationContextapplicationContext)throwsBeansException{if(SpringBeanFactoryUtil.applicationContext==null){SpringBeanFactoryUtil.applicationContext=applicationContext;}}//获取applicationContextpublicstaticApplicationContextgetApplicationContext(){returnapplicationContext;}//通过name获取Bean.publicstaticObjectgetBean(Stringname){returngetApplicationContext().getBean(name);}//通过class获取Bean.publicstaticTgetBean(Class clazz){ returngetApplicationContext().getBean(clazz);}//通过name,以及Clazz返回指定的BeanpublicstaticTgetBean(Stringname,Class clazz){ returngetApplicationContext().getBean(name,clazz);}}这种方法只能获取到自定义的bean(UserService这种),获取不到HttpSession这种Bean。应该如何做呢?可以给个比较详细的代码吗?网上的资料试了都不太行。
手掌心
慕尼黑的夜晚无繁华
相关分类