从源代码来看,Katharsis-spring 模块仅适用于 spring boot。
那么我的问题是,是否可以在 xml 中配置一个 spring 项目并在没有 spring boot 的情况下加载 Katharsis?
如果是这样,您需要如何在 spring xml 中配置 kathasis?
有没有人这样做过并愿意分享一个例子?
谢谢。
使用 katharsis 的 2.8.1 版,仅在 xml 中进行配置是一个很大的挑战。所以我查看了项目的 master 分支,发现将会有一些新功能,这将使使用 spring xml 配置变得更加容易。我在这里创建了一个示例项目,您可以将其用作配置的参考:
带有 XML 配置的示例 Spring/Katharsis 项目
在示例项目中,我添加了 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。
仅适用于 Spring Boot?这似乎不可能。只需@Import(KatharsisConfigV2.class)
在代码中的任何配置上,它都应该可以工作。
至于 xml config:按照设计,如果可以在代码中完成,则可以在 config 中完成。
试试看,让我知道你是怎么做出来的