Skip to content

Commit 9f35c9e

Browse files
committed
Merge branch '3.6.x'
2 parents fac1305 + 710d15a commit 9f35c9e

1 file changed

Lines changed: 20 additions & 19 deletions

File tree

docs/framework/fit/java/user-guide-book/12. 附加功能组件.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,27 @@ HELLO=你好, {0}!
2020

2121
## StringResource
2222

23-
FIT 框架提供了 `StringResource` 接口用于为应用程序的国际化提供字符串管理能力,定义了方法`getMessage()`用于获取在指定语言环境中使用的指定键的字符串资源,其中,参数`locale`表示目标语言环境,`key`表示资源的键,`defaultMessage`表示资源的默认值,`args`表示资源的格式化参数:
23+
FIT 框架提供了 `StringResource` 接口用于为应用程序的国际化提供字符串管理能力,定义了方法`getMessage()``getMessageWithDefault()`用于获取在指定语言环境中使用的指定键的字符串资源,其中,参数`locale`表示目标语言环境,`key`表示资源的键,`defaultMessage`表示资源的默认值,`args`表示资源的格式化参数:
2424

2525
``` java
26-
String getMessage(Locale locale, String key, String defaultMessage, Object... args);
26+
// 获取消息,无默认值
27+
String getMessage(Locale locale, String key, Object... args);
28+
29+
// 获取消息,支持指定默认值
30+
String getMessageWithDefault(Locale locale, String key, String defaultMessage, Object... args);
2731
```
2832

29-
FIT 提供了三个常用的实现类
33+
FIT 内部提供了三个实现类
3034

3135
1. `EmptyStringResource`:为`StringResource`提供空实现,返回一个`null`值。
32-
2. `ResourceBundleStringResource`:提供一个基于`ResourceBundle`的实现,可用以获取指定资源的在多语言环境下使用的消息资源,其中,`ResourceBundle``java.util`提供的一个用于管理和访问国际化资源的类,示例如下:
36+
2. `ResourceBundleStringResource`:提供一个基于`ResourceBundle`的实现,可用以获取指定资源的在多语言环境下使用的消息资源,其中,`ResourceBundle``java.util`提供的一个用于管理和访问国际化资源的类。
37+
3. `StringResourceComposite`:为`StringResource`提供组合模式的实现,可将一系列的消息提供程序组合为一个实例。
3338

34-
``` java
35-
ResourceBundleStringResource bundle =
36-
new ResourceBundleStringResource(this.getClass().getClassLoader(), "i18n/message", "UTF-8");
37-
String messageEn = bundle.getMessage(new Locale("en"), "HELLO", "world");
38-
```
39-
40-
3. `StringResourceComposite`:为`StringResource`提供组合模式的实现,该类实现了静态方法`combine()`用于将一系列的消息提供程序组合为一个实例,其中,参数`providers`表示待组合的消息提供程序:
39+
这些实现类为框架内部使用,开发者通过 `StringResources.forPlugin(Plugin)` 工厂方法获取 `StringResource` 实例,示例如下:
4140

4241
``` java
43-
static StringResource combine(Iterable<StringResource> providers) {...}
42+
StringResource resource = StringResources.forPlugin(plugin);
43+
String messageEn = resource.getMessage(new Locale("en"), "HELLO", "world");
4444
```
4545

4646
## 地区解析器
@@ -71,9 +71,10 @@ public interface LocaleResolver {
7171

7272
FIT 提供了 `DefualtLocaleResolver` 实现类,该类支持从多个来源解析地区信息,按优先级顺序为:
7373

74-
1. 请求参数:从 URL 参数中获取名为 `locale` 的参数值。
75-
2. Cookie:从名为 `locale` 的 Cookie 中获取地区信息。
76-
3. 请求头:从 `Accept-Language` 请求头中解析地区信息。
74+
1. Cookie:从名为 `locale` 的 Cookie 中获取地区信息。
75+
2. 请求头:从 `Accept-Language` 请求头中解析地区信息。
76+
77+
> **注意**:URL 请求参数中的 `locale` 参数由 `LocaleResolveFilter` 负责解析,其优先级高于上述来源。详见下方"地区解析过滤器"章节。
7778
7879
## 地区解析过滤器
7980

@@ -323,8 +324,8 @@ public class MyEventHandler implements EventHandler<FitRuntimeFailedEvent> {
323324
# 12.3 Validation 插件
324325
FIT 框架提供了基于 Hibernate Validator 的数据校验功能,支持对方法参数进行自动校验。
325326

326-
- `fit-hibernate-validation`:基于 javax.validation 规范,适用于传统 Java EE 环境
327-
- `fit-hibernate-validation-jakarta`:基于 jakarta.validation 规范,适用于 Jakarta EE 环境
327+
- `fit-validation-hibernate-javax`:基于 javax.validation 规范,适用于传统 Java EE 环境
328+
- `fit-validation-hibernate-jakarta`:基于 jakarta.validation 规范,适用于 Jakarta EE 环境
328329

329330
约束由约束注解和约束验证实现的组合定义。约束注解可以应用于类、方法、字段或其他约束注解(在组合的情况下)。
330331

@@ -614,7 +615,7 @@ public class AdvancedUserService {
614615

615616
两个插件的主要差异:
616617

617-
| 特性 | fit-hibernate-validation | fit-hibernate-validation-jakarta |
618+
| 特性 | fit-validation-hibernate-javax | fit-validation-hibernate-jakarta |
618619
|-------------|--------------------------|----------------------------------|
619620
| 校验规范 | javax.validation | jakarta.validation |
620621
| Hibernate 版本 | 6.2.5.Final | 9.0.1.Final |
@@ -629,4 +630,4 @@ public class AdvancedUserService {
629630

630631
## 12.3.5 校验的国际化
631632

632-
与校验扩展一样,需要手动处理报错信息中的内容,以完成国际化功能
633+
与校验扩展一样,需要手动处理报错信息中的内容,以完成国际化功能

0 commit comments

Comments
 (0)