代码之家  ›  专栏  ›  技术社区  ›  Steven

公地豆豆替代品

  •  6
  • Steven  · 技术社区  · 15 年前

    我正在寻找一个普通的beanutils替代品。 原因是beanutils依赖于公共日志记录,这与我正在使用的现有库相冲突。

    我想要一个小型的独立的替代方案,它不会造成任何/最小的冲突。

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

    事先谢谢, 史蒂文

    5 回复  |  直到 11 年前
        1
  •  6
  •   StaxMan    15 年前

    而属性处理并不是 Jackson ,可用于此目的,根据 this article .

    其基本思想是,您不仅可以读取/写入JSON到/来自POJOs,还可以进行兼容转换:包括将波霍“序列化”为Java映射。因为您可以在表示之间来回切换,所以基本上可以免费获得bean内省器。

    杰克逊没有外部依赖性,但您需要核心(流式API、IMPL)和映射器JAR(数据绑定)。

        2
  •  5
  •   igr    11 年前

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

        3
  •  1
  •   Thilo    15 年前

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

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

        4
  •  1
  •   Steven    15 年前

    最后编写了自己的mini-beanutils来绕过这种依赖关系,并完全删除了commons-beanutils。

    slf4j最终没有帮助,因为它打破了一些其他的依赖(该死的weblogic!).

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

    如果您有兴趣获取我的实现的源代码,请发送消息给我。

        5
  •  0
  •   sparc_spread    13 年前

    如果您使用的是maven,那么您可以像这样排除公共日志记录依赖项:

    <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也做了同样的工作,它还需要公共日志记录。事实上,春天自己 taught me how to exclude it . 据我所知,我现在有一个公共的无日志记录环境。

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

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