【问题标题】:commons beanutils alternativecommons beanutils 替代方案
【发布时间】:2011-04-25 18:53:58
【问题描述】:

我正在寻找一个 commons beanutils 替代品。 原因是 beanutils 依赖于与我正在使用的现有库冲突的 commons-logging。

我想要一个小的独立替代方案,它不会引起/最小的冲突。

我追求的主要功能是嵌套属性检索。

提前致谢, 史蒂文

【问题讨论】:

    标签: java apache-commons-beanutils


    【解决方案1】:

    与其他库没有冲突的有效替代方案是BULL,您可以在DZone 上找到有关如何使用它的指南。它提供了在应对时也执行对象转换的可能性。

    【讨论】:

      【解决方案2】:

      Jodd 有很好的图书馆收藏,看看Jodd BeanUtil 是否有帮助。

      【讨论】:

      • 这是完美的“小型独立替代方案,不会导致/最小冲突”:)
      【解决方案3】:

      如果你使用的是 Maven,你可以像这样排除 commons-logging 依赖:

      <dependency>
          <groupId>commons-beanutils</groupId>
          <artifactId>commons-beanutils</artifactId>
          <version>1.8.3</version>
          <exclusions>
              <exclusion>
                  <groupId>commons-logging</groupId>
                  <artifactId>commons-logging</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      

      我对 Spring 做了同样的事情,它也需要公共日志记录。事实上 Spring 自己 taught me how to exclude it。据我所知,我现在拥有一个无公共日志记录的环境。

      更新:对于 SLF4J / Logback 之类的东西,您可能还需要在配置文件中使用它:

      <logger name="org.apache.commons" level="OFF" />
      

      【讨论】:

        【解决方案4】:

        虽然属性处理不是Jackson 的主要关注点,但可以根据this article 使用它。

        基本思想是,您不仅可以从 POJO 读取/写入 JSON,还可以进行兼容转换:包括将 POJO“序列化”为 Java Map。由于您可以在表示之间来回切换,因此您基本上可以免费获得一个 bean introspector。

        Jackson 没有外部依赖项,但您需要核心(流式处理 api、impls)和映射器 jar(数据绑定)。

        【讨论】:

          【解决方案5】:

          最终编写了我自己的迷你 beanutils 来解决这种依赖关系并完全删除了 commons-beanutils。

          SLF4J 最终没有提供帮助,因为它破坏了一些其他依赖项(该死的 weblogic!)。

          我自己的实现可能更慢,因为 commons-beanutils 似乎缓存了一些获取以删除一些反射调用。

          如果您有兴趣获取我的实现的源代码,请联系我。

          【讨论】:

          • "我自己的实现可能会慢一些,因为 commons-beanutils " Commons-beanutils 是开源的。也许您只是下载源代码,然后删除对公共日志记录的调用。 OTOH,您的代码可能不会慢到无论如何都会产生任何影响的程度。
          • 我试过了,但它最终也引入了摘要和其他内容。只是有点太乏味了,无论如何我的解决方案非常小而且容易。
          【解决方案6】:

          您可以通过使用备用公共日志记录bridge implementation provided by SFL4j 来解决与公共日志记录的冲突。

          通常,将 commons-logging.jar 替换为 jcl-over-slf4j.jar 将立即永久解决与公共日志记录相关的类加载器问题。

          【讨论】:

          • 我会先试一试,然后告诉你
          • 没有帮助,只是造成了更多的依赖问题。
          猜你喜欢
          • 2011-03-26
          • 2013-01-24
          • 2011-03-19
          • 1970-01-01
          • 2013-01-02
          • 2016-03-16
          • 2014-02-02
          • 2011-11-14
          • 2016-03-04
          相关资源
          最近更新 更多