くちたと計算記

プログラミングのことを書きます

2023-01-01から1年間の記事一覧

Spring で複数の ControllerAdvice を使うときは、一つのファイルに ControllerAdvice をまとめると見通しが良さそう

以下のような仕様のリクエスト共通処理を ControllerAdvice として実装しようと思いました。 AuthenticationPrincipal に保存された情報をもとに、パッケージごとに Controller へのアクセス制御をおこなう。 ページへのリクエストがあるたびに共通の処理を…

Nuxt3 の useFetch / useAsyncData で POST リクエストを送るときはリクエストがキャッシュされないように注意しよう

概要 useFetch で key を設定せずに POST リクエストを送信する実装をしてみたら、 ボタンを何回押しても一度しかリクエストが送信されなくなってしまいました。$fetch を直接使ったり、 key を適切に設定すれば解決しました。 前提知識 TypeScript Nuxt 3 …

Nuxt3 で Provide / Inject を使って画面遷移先に Vuetify の Snackbar を表示させる

概要 Nuxt3 と Vuetify を使って SPA を実装しています。 ログイン成功したときなどに、 遷移先に Snackbar でメッセージを表示させたいと考えました。 ところが、以下のように pages 配下のコンポーネントに Snackbar を書くと、遷移先のページには Snackba…

Spring Boot で REST API を実装するときに、認証だけ FormData を使うと Spring Security の設定で楽できる

まとめ UsernamePasswordAuthenticaitonFilter が FormData から認証情報を読み込むので、 それを仕様にしてしまったほうが実装が楽になる。 UsernamePasswordAuthenticaitonFilter を使えないなら、 JSON から認証情報を読み込んでも実装コストとコード量は…

テンプレートメソッドパターンの別解を考えたがクラスから知識が漏れ出しただけだった

テンプレートメソッドパターンとは振る舞いに関するデザインパターンの一つ。 ja.wikipedia.org 公開する振る舞いのうち一部をサブクラスでのみアクセス可能な抽象メソッドとして抽出している。 この方法を用いることで、公開する振る舞いの仕様を守りながら…

Spring Web MVC のアノテーション `ModelAttribute` の挙動と、 `SessionAttributes` との併用でうまくいかなかったこと

概要 入力フォームを Spring Web MVC の Annotation Controllers で実装しているときに、 @ModelAttribute と @SessionAttributes を使ったところ、すんなりと上手くいかない部分がありました。 そこで、起きた問題と解決策を記事に書きました。 前提 Java 1…