【发布时间】:2017-08-01 00:42:13
【问题描述】:
首先遇到这个问题是想知道我应该如何将 ContextLoaderListener 的应用程序上下文中的服务层级 bean 自动装配/注入到 DispatcherServlet 的上下文中的 bean 中。
假设对于一个随机的简单情况,PuppyService 需要在实际资源/控制器级别上自动装配/注入到 PuppyResource 中。 Puppy 服务以及 Puppy 存储库和任何 Puppy 实体将是从 @Configuration 类自动加载到根/ContextLoaderListener 的上下文中的 bean,该类在其他包中进行组件扫描以获取 bean 并加载它们...
同时,Puppy RESOURCE 将更多地处于 webMvc 级别并加载到 DispatcherServlet 的上下文中。
根据我刚刚阅读的内容,现在希望理解,根上下文实际上是 DispatcherServlet 创建的上下文的“父”上下文。这意味着存在于根上下文中的 bean 实际上可以自动装配/注入到存在于由 DispatcherServlet 创建的上下文中的任何 bean 中。我确实刚刚了解了“嵌套”上下文的概念。这准确吗?
如果这是准确的,那么配置在哪里设置以使根上下文成为“父”上下文?目前,当我配置 servlet/listener 时,我是通过 WebApplicationInitializer 的自定义实现来完成的,其中我只需创建两个上下文,分别将它们加载到 DispatcherServlet 实例和 ContextLoaderListener 实例中,然后将它们分别注册到 servlet .我猜在那里的某个地方,ContextLoaderListener 的应用程序上下文会自动设置为“父级”。
有人能简单解释一下吗?谢谢。
【问题讨论】:
标签: java spring rest spring-mvc servlets