Skip to content

Commit

Permalink
ドキュメントの修正とADB2Cサンプルに対する修正
Browse files Browse the repository at this point in the history
  • Loading branch information
rnakagawa16 committed Dec 24, 2024
1 parent 0589a27 commit f3c8dd9
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,25 @@ public class ErrorMessageBuilder {
}
}
```

また、 `#!java @Service``#!java @Controller``#!java @Component` といった Bean 登録されたクラス内で `MessageSource` を利用する場合は、 `#!java @Autowired` による DI で実装します。

以下は、プロパティファイルからエラーレスポンスに含めるメッセージを整形する `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()));

...
}
}
```
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.dressca.web.constant;

/**
* ProblemDetailの拡張メンバー用の定数クラス
* web プロジェクトで利用する汎用定数クラス
*/
public class ProblemDetailsExtensionConstant {
public class WebConstants {

/** Exception ID。 */
public static final String EXCEPTION_ID = "exceptionId";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ProblemDetail;
import org.springframework.stereotype.Component;
import com.dressca.systemcommon.util.ApplicationContextWrapper;
import com.dressca.web.constant.ProblemDetailsExtensionConstant;
import com.dressca.web.constant.WebConstants;
import com.dressca.web.log.ErrorMessageBuilder;

/**
Expand All @@ -24,6 +23,9 @@ public class ProblemDetailsFactory {
@Autowired
private Environment env;

@Autowired
private MessageSource messages;

/**
* エラーレスポンスに含める ProblemDetails を作成する。
*
Expand All @@ -36,8 +38,7 @@ public ProblemDetail createProblemDetail(ErrorMessageBuilder errorBuilder, Strin

ProblemDetail problemDetail = ProblemDetail.forStatus(status);

MessageSource messageSource = (MessageSource) ApplicationContextWrapper.getBean(MessageSource.class);
problemDetail.setTitle(messageSource.getMessage(titleId, new String[] {}, Locale.getDefault()));
problemDetail.setTitle(messages.getMessage(titleId, new String[] {}, Locale.getDefault()));

// 開発環境においては、 detail プロパティにスタックトレースを含める
// 開発環境かどうかの判断は、環境変数の Profile をもとに判断する
Expand All @@ -54,8 +55,8 @@ public ProblemDetail createProblemDetail(ErrorMessageBuilder errorBuilder, Strin
// 拡張メンバーとして exceptionId と exceptionValues を含める
Map<String, Object> errorProperty = new LinkedHashMap<String, Object>() {
{
put(ProblemDetailsExtensionConstant.EXCEPTION_ID, errorBuilder.getExceptionId());
put(ProblemDetailsExtensionConstant.EXCEPTION_VALUES, errorBuilder.getFrontMessageValue());
put(WebConstants.EXCEPTION_ID, errorBuilder.getExceptionId());
put(WebConstants.EXCEPTION_VALUES, errorBuilder.getFrontMessageValue());
}
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.dressca.web.constant;

/**
* ProblemDetailの拡張メンバー用の定数クラス
* web プロジェクトで利用する汎用定数クラス
*/
public class WebConstants {

Expand Down

0 comments on commit f3c8dd9

Please sign in to comment.