【发布时间】:2016-11-30 01:43:43
【问题描述】:
从源代码看来,Katharsis-spring 模块只能与 spring boot 一起使用。
那么我的问题是,是否可以在 xml 中配置一个 spring 项目并在没有 spring boot 的情况下加载 Katharsis?
如果是这样,你需要如何在 spring xml 中配置 kathasis?
有没有人这样做过并愿意分享一个例子?
谢谢。
【问题讨论】:
从源代码看来,Katharsis-spring 模块只能与 spring boot 一起使用。
那么我的问题是,是否可以在 xml 中配置一个 spring 项目并在没有 spring boot 的情况下加载 Katharsis?
如果是这样,你需要如何在 spring xml 中配置 kathasis?
有没有人这样做过并愿意分享一个例子?
谢谢。
【问题讨论】:
仅适用于 Spring Boot?这似乎不可能。只需 @Import(KatharsisConfigV2.class) 对代码中的任何配置进行配置即可。
关于xml config:按照设计,如果可以在代码中完成,则可以在config中完成。
试试看,然后告诉我你是怎么做到的
【讨论】:
在 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。
【讨论】: