有很多依赖注入(DI)方法,例如XML中的声明bean,@ annotation,setter或构造方法等。
没有上述任何DI方法的HttpSession
,如何注入到Spring上下文中?
我看到了很多代码,它们分别注入HttpSession
或由@Autowired
直接发出请求,如下所示:
@Controller
public class MyController{
@Autowired
private HttpSession session;
@RequestMapping("/hello")
return "hello world";
}
我不明白在没有将任何bean注入HttpSession
或没有由context.xml
注释的情况下,如何将@Component
注入控制器。
任何人都可以告诉我原因的详细信息或链接吗?
A:WebApplicationContextUtils.java中的方法“ registerWebApplicationScopes”通过ConfigurableListableBeanFactory注册此类HttpRequest。另外,DefaultListableBeanFactory中的findAutowiredCandicate方法显示了这些bean如何注入到Spring上下文中。