gpt4 book ai didi

java - 国际化网络服务

转载 作者:行者123 更新时间:2023-12-01 14:24:29 26 4
gpt4 key购买 nike

我正在使用 cxf 和 spring 开发一些 Web 服务。服务必须了解区域设置,因为某些消息是在数据库中定义的。

实现它的正确方法是什么?

应如何将区域设置传递给服务?可能位于 HTTP header 或 SOAP header 中。我不希望使用除 HTTP 之外的其他传输方式,因此 HTTP header 可能是一个不错的选择。

如何从 Web 服务代码中检索区域设置?也许我可以使用一些 Spring 线程本地功能。顺便说一句,我使用 Spring security 进行身份验证和授权,因此我可以以某种方式将语言环境放入安全上下文中。

任何评论或示例都会有很大帮助。

非常感谢!

最佳答案

一般来说,您会询问隐式显式参数的优缺点。

隐式参数通常用于传递数据库连接、 Multi-Tenancy ID、用户语言等 - 这些并不是真正直接的函数/服务参数,但它们会对生成的结果产生影响。

在封闭系统中,您可以考虑隐式传递这些内容。因此,无需显式传递这些内容(这往往会使您的代码变得困惑)。

另一方面,它使您的代码“不那么明确”:如果您(或其他人)稍后查看代码,可能不清楚幕后是否传递了其他内容:声明隐式参数的位置以及隐式使用它的函数可能会令人困惑。

因此,即使在封闭系统中,人们也应该谨慎使用此功能:“更少输入”的优点应该与“不可见的隐式参数”的成本进行比较。

另一方面,在公共(public) API 的上下文中,我不会使用隐式:没有什么比显式传输所有参数的一个函数调用的简单性更好的了:我不会添加任何其他人为的技术复杂性。如果您保持技术界面简单,可能会避免调用者感到沮丧。

关于java - 国际化网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17276257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com