tomcat - 将 picocontainer 与 tomcat servlet 一起使用

标签 tomcat picocontainer

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

最佳答案

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

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

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

2) 如您所说,ScopedContainers 隐藏外部代码的容器,因此您必须编写自己的 PicoServletContainerListener(只需获取现有源代码并使作用域容器可用于您的代码),在此方法中您可以编写通常的 servlet 并委托(delegate)给微型组件

关于tomcat - 将 picocontainer 与 tomcat servlet 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25644375/

相关文章:

java - 控制 PicoContainer 的启动顺序

java - PicoContainer 缓存可以是线程安全的吗?

java - 如何使用 PIcocontainer

apache - 想要从 https URL 中删除端口号

java - 户外问题 : URI cannot be imported as it is not defined (with prefix

java - 通过 Tomcat 流式传输

Tomcat 无法启动 : java.net.BindException: 无法分配请求的地址

java - JAX-RS : root page is blank without giving any particular errors

java - 依赖注入(inject) - Cucumber Pico 容器