-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* メッセージプロパティを各サブプロジェクトで管理するよう変更する * 使用していないimportの削除 * メッセージコードをフロントエンドに合わせて頭文字を小文字にする * フロントエンド側のメッセージ管理機能実装 * バックエンド側のエラーメッセージ出力を実装 * フロントエンド側のメッセージ管理機能の実装 * 起動方法の修正 * テスト時の警告解除 * type-checkの警告対応 * typecheckの警告回避と日英対応のメッセージ作成 * エラーハンドリング機能の修正 * if文の修正 * ドキュメントの追加 * ドキュメントの追加 * エラーメッセージに関する記載の修正 * 入力値検証のドキュメント修正 * ブラウザーの言語設定の取得方法修正 * ドキュメント指摘事項の修正 * クリップボード機能の修正 * textlintエラーへの対応 * 入力値検証に関するドキュメントの修正 * ドキュメント指摘事項の修正 * ドキュメントのimport文の削除 * 起動方法の修正 * ドキュメントのアプリ起動方法を記載 * 冗長な文章を修正 * ハイライトを修正 * 指摘事項と軽微なドキュメントの修正 * 変数名の修正 * 指摘事項の対応 * リンクの修正 * アセットサポートのエラーメッセージをプロパティファイルに設定する * OpenAPI 仕様書について ProblemDetailsを考慮した形に修正 * ProblemDetailの出力方法を修正 * プロパティに関するコメントを追加 * 指摘事項の修正 * メッセージ管理機能をADB2Cプロジェクトに導入 * Content-Typeをapplication/problem+jsonに修正 * ADB2CプロジェクトにProblemDetailsの対応を反映 * カスタムエラーハンドラーの修正 * responseにexceptionIdが含まれるかどうかで処理を分岐するよう修正 * 定数クラスの修正 * DIによるメッセージ取得に変更 * ドキュメントの修正とADB2Cサンプルに対する修正 * クラス名の修正 * textlint 対応 * 競合による修正 * 競合箇所の修正 * 重複するコメントの削除
- Loading branch information
1 parent
0698633
commit 1d1c85b
Showing
70 changed files
with
827 additions
and
323 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
99 changes: 99 additions & 0 deletions
99
...tents/guidebooks/how-to-develop/java/sub-project-settings/message-management.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
--- | ||
title: Java 編 | ||
description: バックエンドで動作する Java アプリケーションの 開発手順を解説します。 | ||
--- | ||
|
||
<!-- cspell:ignore applicationcore systemcommon --> | ||
|
||
# メッセージ管理機能の設定 {#top} | ||
|
||
バックエンドのメッセージ管理方針に関するアーキテクチャについては、[こちら](../../../../app-architecture/overview/java-application-processing-system/message-management-policy.md) をご確認ください。 | ||
|
||
## 設定方法 {#settings} | ||
|
||
本設定で利用するフォルダーの構成は以下の通りです。 | ||
|
||
```terminal linenums="0" | ||
root/ ------------------------------------------ root フォルダー | ||
├ application-core/src/main/resource | ||
│ └ applicationcore --------------------------- 業務メッセージのプロパティファイルを一元管理するフォルダー | ||
│ └ messages.properties --------------------- 業務メッセージのプロパティファイル | ||
└ system-common/src/main/resource | ||
└ systemcommon ------------------------------ 共通メッセージのプロパティファイルを一元管理するフォルダー | ||
└ messages.properties --------------------- 共通メッセージのプロパティファイル | ||
``` | ||
|
||
### プロパティファイルの作成 {#creating-property-file} | ||
|
||
メッセージに関するプロパティファイルは各サブプロジェクトの `/src/main/resource/<サブプロジェクト名>` フォルダーに集約します。 | ||
以下のように、メッセージ本体を格納するプロパティファイルを作成します。 | ||
|
||
```properties title="message.properties" | ||
systemError=想定外のシステムエラーが発生しました | ||
businessError=想定外の業務エラーが発生しました | ||
``` | ||
|
||
### プロパティファイルの読込 {#reading-property-files} | ||
|
||
以下のように、 web プロジェクトなどエントリーポイントとなるサブプロジェクトの application.properties にプロパティファイルを読み込む設定を記載します。 | ||
|
||
``` properties title="application.properties" | ||
spring.messages.basename=applicationcore.messages,systemcommon.messages | ||
``` | ||
|
||
読み込むプロパティファイルは `src/main/resource` 配下の `<フォルダー名>.<ファイル名>` で指定します。 | ||
プロパティファイルが複数ある場合は、ファイルの間をカンマで区切ります。 | ||
|
||
### メッセージの取得 {#getting-messages} | ||
|
||
読み込んだプロパティファイルのメッセージを取得するためには、 [`MessageSource` :material-open-in-new:](https://spring.pleiades.io/spring-framework/docs/current/javadoc-api/org/springframework/context/MessageSource.html){ target=_blank } クラスを利用します。 | ||
|
||
以下は、プロパティファイルからメッセージを取得し、ログに出力するためのエラーメッセージを整形する `ErrorMessageBuilder` クラスの例です。 | ||
|
||
```java title="ErrorMessageBuilder.java" hl_lines="5 14" | ||
@Getter | ||
@AllArgsConstructor | ||
public class ErrorMessageBuilder { | ||
|
||
private static final MessageSource messageSource = (MessageSource) ApplicationContextWrapper.getBean(MessageSource.class); | ||
|
||
private Exception ex; | ||
private String exceptionId; | ||
private String[] logMessageValue; | ||
private String[] frontMessageValue; | ||
|
||
public String createLogMessageStackTrace() { | ||
StringBuilder builder = new StringBuilder(); | ||
String exceptionMessage = messageSource.getMessage(exceptionId, logMessageValue, Locale.getDefault()); | ||
builder.append(exceptionId).append(" ").append(exceptionMessage).append(SystemPropertyConstants.LINE_SEPARATOR); | ||
StringWriter writer = new StringWriter(); | ||
ex.printStackTrace(new PrintWriter(writer)); | ||
builder.append(writer.getBuffer().toString()); | ||
return builder.toString(); | ||
} | ||
} | ||
``` | ||
|
||
<!-- textlint-disable ja-technical-writing/sentence-length --> | ||
また、 `#!java @Service` や `#!java @Controller` 、 `#!java @Component` といった Bean 登録されたクラス内で `MessageSource` を利用する場合は、 `#!java @Autowired` による DI で実装します。 | ||
<!-- textlint-enable ja-technical-writing/sentence-length --> | ||
|
||
以下は、プロパティファイルからエラーレスポンスに含めるメッセージを整形する `ProblemDetailsFactory.java` クラスの例です。 | ||
|
||
```java title="ProblemDetailsFactory.java" hl_lines="4 5 11" | ||
@Component | ||
public class ProblemDetailsFactory { | ||
|
||
@Autowired | ||
private MessageSource messages; | ||
|
||
public ProblemDetail createProblemDetail(ErrorMessageBuilder errorBuilder, String titleId, HttpStatus status) { | ||
|
||
ProblemDetail problemDetail = ProblemDetail.forStatus(status); | ||
|
||
problemDetail.setTitle(messages.getMessage(titleId, new String[] {}, Locale.getDefault())); | ||
|
||
... | ||
} | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 15 additions & 0 deletions
15
...em-common/src/main/java/com/dressca/systemcommon/constant/CommonExceptionIdConstants.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package com.dressca.systemcommon.constant; | ||
|
||
/** | ||
* 例外ID用定数クラス。 | ||
*/ | ||
public class CommonExceptionIdConstants { | ||
/** 想定外のシステムエラーが発生しました。 */ | ||
public static final String E_SYSTEM = "systemError"; | ||
|
||
/** 想定外の業務エラーが発生しました。 */ | ||
public static final String E_BUSINESS = "businessError"; | ||
|
||
/** 未認証のエラーが発生しました。 */ | ||
public static final String E_UNAUTHORIZED = "unauthorizedError"; | ||
} |
12 changes: 0 additions & 12 deletions
12
...nd/system-common/src/main/java/com/dressca/systemcommon/constant/ExceptionIdConstant.java
This file was deleted.
Oops, something went wrong.
15 changes: 0 additions & 15 deletions
15
...kend/system-common/src/main/java/com/dressca/systemcommon/constant/MessageIdConstant.java
This file was deleted.
Oops, something went wrong.
2 changes: 1 addition & 1 deletion
2
...ad-b2c-sample/auth-backend/system-common/src/main/resources/application-common.properties
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
spring.messages.basename=messages | ||
spring.messages.basename=systemcommon.messages | ||
spring.messages.encoding=UTF-8 |
5 changes: 0 additions & 5 deletions
5
...les/azure-ad-b2c-sample/auth-backend/system-common/src/main/resources/messages.properties
This file was deleted.
Oops, something went wrong.
3 changes: 3 additions & 0 deletions
3
...b2c-sample/auth-backend/system-common/src/main/resources/systemcommon/messages.properties
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
systemError=想定外のシステムエラーが発生しました。 | ||
businessError=想定外の業務エラーが発生しました。 | ||
unauthorizedError=未認証のエラーが発生しました。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.