【问题标题】:Spring framework best practices: deploying a non-bean compliant componentSpring 框架最佳实践:部署不符合 bean 的组件
【发布时间】:2010-10-23 06:08:18
【问题描述】:

我想使用 Spring 构建一个 MVC 应用程序(这里是第一个计时器)。

因此,我想将 Jetty 作为 servlet 引擎嵌入。然而,Jetty 并没有严格遵循 java bean 模式,所以我无法从 Spring 启动一些类(它们使用重载的 setter 或非 setter 初始化方法,如 addXYZ)。

构建此项目的公认/推荐做法是什么?显然我的所有代码都非常适合 MVC 模型,但对于 Jetty:

  • 我是否封装了所有 Jetty(或任何 其他非 bean 友好的组件)在 我自己的 Spring 友好 bean?
  • 我是否尽可能多地实例化它? 可能在春天,只是延长 不符合 bean 的类 让它们表现得像真正的豆子?
  • 有吗 另一种选择?

【问题讨论】:

    标签: java spring spring-mvc jetty embedded-jetty


    【解决方案1】:

    一般来说,我支持第二点 - 即尝试使用诸如 factory-methodinit-method<constructor-arg> 之类的弹簧实用程序来克服某些东西并不完全适合弹簧的事实。很少有不可能用 spring 配置 bean 的情况。对于不可能的情况,创建包装器

    您还可以通过编程方式实例化第 3 方 bean:

    【讨论】:

    • 哦,不要让我开始研究他们的文档,我已经茫然地盯着那个文档几个小时了。 :) 我认为它已经很老了(无效的包引用并且它使用了已弃用的组件),所以我将采用嵌入式路线并遵循最新的代码示例。感谢您的建议,这有助于听取其他人的意见,我没有坐在附近的立方体伙伴。
    • 另一个浮现在脑海中的选项是使用 Java Config... 可以让您摆脱麻烦(比如看似无害的重载 setter 问题)。我也欢迎对这个想法发表任何进一步的评论。
    • @David Parks - 是的,JavaConfig 也是一个不错的选择。我现在正在添加更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    相关资源
    最近更新 更多