2

我正在尝试在 Tomcat 上运行的基于 servlet 的应用程序中使用 PicoContainer。配置显然在调试中有效,但除非我认为 Servlet 类不是由 construnctor 注入,也不是由 setter 注入。servlet 类不应该被注入吗?如果没有,我如何在基于 servlet 的应用程序中使用容器?

4

1 回答 1

1

没有实际注入 servlet 的 IoC 容器。在您的情况下,它们由 tomcat 实例化。典型的 Pico 组件是控制器、DAO、业务逻辑等。

您实际上可以通过两种方式实现您的网络应用程序:

1)发挥 pico 过滤器的作用:您的控制器应该是实现生命周期接口的请求范围组件。因此,此类组件将注入请求,然后由容器调用 start()。实际上,在这种方法中,您根本不会拥有 servlet。在请求范围内拥有单个路由器控制器可能是有意义的,它将特定的 url 处理委托给其他容器组件。

2)正如您所说,ScopedContainers 隐藏了外部代码的容器,因此您必须编写自己的 PicoServletContainerListener(只需获取现有源并使范围容器可用于您的代码)在这种方法中,您可以编写常用的 servlet,然后委托给 pico 组件

于 2014-09-04T09:18:40.160 回答