【问题标题】:katharsis configured with spring xmlkathasis 配置了 spring xml
【发布时间】:2016-11-30 01:43:43
【问题描述】:

从源代码看来,Katharsis-spring 模块只能与 spring boot 一起使用。

那么我的问题是,是否可以在 xml 中配置一个 spring 项目并在没有 spring boot 的情况下加载 Katharsis?

如果是这样,你需要如何在 spring xml 中配置 kathasis?

有没有人这样做过并愿意分享一个例子?

谢谢。

【问题讨论】:

    标签: spring katharsis


    【解决方案1】:

    仅适用于 Spring Boot?这似乎不可能。只需 @Import(KatharsisConfigV2.class) 对代码中的任何配置进行配置即可。

    关于xml config:按照设计,如果可以在代码中完成,则可以在config中完成。

    试试看,然后告诉我你是怎么做到的

    【讨论】:

    • 表面上看起来确实是这样,但是当你走 xml 路线时,spring boot 所做的一些事情似乎不起作用。经过多次尝试和错误,我确实在纯 spring xml 配置中启动并运行了它。我稍后会发布我的答案。感谢您的回复。
    【解决方案2】:

    在 kathasis 2.8.1 版本中,仅在 xml 中进行配置是一个很大的挑战。所以我查看了项目的 master 分支,发现将会有一些新功能,这将使使用 spring xml 配置变得更加容易。我在这里创建了一个示例项目,您可以将其用作配置参考:

    Sample Spring/Katharsis Project with XML configuration

    在示例项目中,我添加了 SpringServiceDiscovery 类,并修改了 KatharsisBoot 类以使配置更容易。在这个项目的下一个版本中,我应该能够完全删除这两个类,并使用 kathasis 附带的类。

    我需要添加到我的 root-context.xml 文件中的 bean 如下:

    io.katharsis.spring.KatharsisFilterV2
    io.katharsis.spring.ErrorHandlerFilter
    com.springkatharsisxml.katharsis.boot.KatharsisBoot
    io.katharsis.queryParams.QueryParamsBuilder
    io.katharsis.resource.registry.ConstantServiceUrlProvider
    io.katharsis.queryParams.DefaultQueryParamsParser
    io.katharsis.module.CoreModule
    io.katharsis.resource.field.ResourceFieldNameTransformer
    io.katharsis.spring.boot.KatharsisSpringBootProperties
    

    我还需要公开 jackson objectMapper bean,因为在 xml 中默认情况下没有这样做。

    我还将 org.springframework.web.filter.DelegatingFilterProxy 用于 kathasisFilter 和 errorHandlerFilter。

    【讨论】:

      猜你喜欢
      • 2017-06-01
      • 2023-03-21
      • 2015-02-02
      • 2018-08-02
      • 2013-10-24
      • 2011-11-26
      • 1970-01-01
      • 2017-03-03
      • 2016-10-24
      相关资源
      最近更新 更多