【问题标题】:small footprint dependency injection java占用空间小的依赖注入java
【发布时间】:2010-12-04 17:26:10
【问题描述】:

我正在寻找一个非常轻量级的 java 依赖注入框架。 尽可能少的依赖和最少的功能。

大致如下:接收Classes 的java.util.List,实例化它们,然后将所有对象自动连接到另一个。

【问题讨论】:

    标签: java dependency-injection frameworks inversion-of-control


    【解决方案1】:

    看看 dagger2,由 google 开发(由 square 的 dagger1 分叉),只有 17kb jar。

    • 样板文件比 guice 少得多
    • 注入的编译时验证(带有明确的错误消息。这是 spring,guice 肯定不会)
    • 在编译时生成 Facotries,代码。 非常强大

    dagger2 documentation dagger2 github dagger2 examples

    【讨论】:

      【解决方案2】:

      Silk DI 是关于 120K 的单个 jar 文件,没有进一步的运行时依赖项。它有一个流畅的活页夹界面,如 guice,但更灵活,允许删除你不喜欢的功能。例如。 CollectionList 注射可以添加到一个衬里

      【讨论】:

        【解决方案3】:

        我试用MentaContainer 不到一周时间,我对它简洁明了的 API 感到满意。它没有使用 XML 或 Annotations 进行设置,而是使用了流畅的 API,几乎就像 DSL 一样,这对我来说就像天堂一样,因为我正在使用它来构建一个支持 IoC 的小型 Web 容器。它为组件提供了一个 THREAD 范围,非常适合 Web 容器的 REQUEST 范围。它非常轻巧,因此可能是您所需要的。

        【讨论】:

          【解决方案4】:

          一定要看看 Guice。用了一年,非常喜欢。

          【讨论】:

            【解决方案5】:

            我会推荐Spring,因为这可以在仅使用核心包时提供较小的占用空间。

            如果您认为 Spring 太过分了,那么也许是 PicoContainerguice

            【讨论】:

            • 我建议 Spring 仅使用 BeanFactory 实现 - Spring 的大部分“重量级”性质来自于使用 ApplicationContext 而人们不了解 ApplicationContext 添加的开销(尽管很酷的特性伴随着开销) BeanFactory 的顶部。
            • PicoContainer 完全符合要求
            【解决方案6】:

            也许你应该看看 Google Guice:http://code.google.com/p/google-guice/

            【讨论】:

            • 我同意这一点。 Guice 是轻量级的,几乎没有侵入性。
            猜你喜欢
            • 2019-08-22
            • 2019-04-26
            • 1970-01-01
            • 1970-01-01
            • 2016-04-28
            • 1970-01-01
            • 2016-10-03
            • 2016-10-01
            • 2022-07-07
            相关资源
            最近更新 更多