Spring - I18n - 通过静态类访问 MessageSource?

Smo*_*oki 5 java spring internationalization vaadin

我遵循了一些像这样的教程:

http://www.concretepage.com/spring-4/spring-4-mvc-internationalization-i18n-and-localization-l10n-annotation-example

让 i18n 在我的 spring(boot) 项目中工作。到目前为止它正在工作,但我不喜欢它总是将MessageSourcebean 自动连接到我当前的类,只是为了String翻译一些 s 。

我的想法是一个简单的包装类,带有静态调用,例如

I18n.translate("some.identifier") 
Run Code Online (Sandbox Code Playgroud)

或者

I18n.translate("some.identifier",param,param,param...).
Run Code Online (Sandbox Code Playgroud)

但我不能将其注入MessageSource到Spring不处理的类中,对吧?

知道如何解决这个问题吗?

gri*_*der 0

你有两种可能性:

  1. 静态属性/字段的非静态设置器;
  2. 用于org.springframework.beans.factory.config.MethodInvokingFactoryBean调用静态设置器。

您可以通过链接找到示例 如何使 spring 将值注入静态字段

PS 自动装配 MessageSource 到你的 beans 有什么问题?