きり丸の技術日記

技術・エンジニアのイベント・資格等はこちらにまとめる予定です

SpringBoot

データベースのH2を使用してMyBatisの取得・更新のテストを行う(JavaとSpringBoot)

きり丸アドベントカレンダー2020の9記事目です。 今回の記事でMyBatisのテストを行えるようにします。テスト用のスターターが準備されているので、テストのための準備は簡単です。ただし、テストのセットアップは慣れていないと、時間がかかってしまいます。…

MyBatisを使用してデータの取得・更新をする(JavaとSpringBoot)

きり丸アドベントカレンダー2020の8記事目です。 今回の記事でDBの更新を行います。データの取得(Select)と追加(Insert)をこの記事で紹介します。 更新と削除に関しても同様の処理で問題ありませんので、頑張ってみてください。なお、9日目にDBのテスト…

HTMLからJavaにパラメータを渡す(SpringBoot)

きり丸アドベントカレンダー2020の7記事目です。 6日目の記事でJava -> HTMLにデータを転送することができました。 しかし、それではデータを取得することしかできません。 今回の記事では、データの更新、削除、追加できるようにHTML -> Javaにデータを転送…

Thymeleafを使ってSpringBootからhtmlにパラメータを渡して画面表示させる

きり丸アドベントカレンダー2020の6記事目です。 始めに宣言しておくと、この辺から「やはりIntelliJ IDEAいいなぁ…」みたいに思うことが多くなってきます。しょうがないとはいえ、GitpodやVS Codeはライブラリのimport機能が貧弱です。 コーディング中に引…

GitpodでDBのDockerを使用し、SpringBootからアクセスする

きり丸アドベントカレンダー2020の4記事目です。 Gitpod上でDBの環境構築もできると、確認できることが増えます。DBも設定しましょう。 手順 .gitpod.Dockerfileを修正 gp initで作成したDockerのイメージにはPostgreSQLは含まれていません。ですので、.gitp…

【Java】GitpodでSpringが使えるように環境構築する(VS Codeでも流用可)

きり丸アドベントカレンダー2020の3記事目です。ようやくSpringBootの起動ができます! なお、まだコードは触れません。 Springのプロジェクトを作成し、Gitpodにアップロードしました。しかし、現在のままではGitpodでSpringの開発をしようにも、そもそも起…

【Java】Spring Initializrで簡単にプロジェクトを作成する

きり丸アドベントカレンダー2020の2記事目です。 Java歴6年になりますが、いまだにゼロからプロジェクトを作成するのは苦手です。というか、出来ないですね…。 じゃあ、どうやってプロジェクトを作っているかというと、Spring Initializrというサイトでプロ…

SpringBootでpropertiesやymlの設定ファイルが読み込めることのテストを書く【Java】

2021/03/31 追記 SpringBoot2.4以降の場合はこちらの記事も参考にしてみてください。 SpringBootではpropertiesファイルやymlファイル(以降、設定ファイル)に、DBのURL等々の環境ごとの変数を記載できます。 設定ファイルの値が目的通り一致していることを…

【Spring】TestExecutionListnerを継承した自作アノテーションでSpringのテストセットアップを快適にする

テスト設計というのは非常に難しいです。 ちょっとでも見誤ると、すぐにテストができない設計になってしまい、テストをしないという設計になってしまいがちです。 これを避けるためにTDDを行うのですが、粒度の違うUTとE2Eではテストの設計が違ってくるので…

【Spring】Spring機能使いつつ、テストを高速化する

※ もっと高速化する方法がありましたら教えていただきたいです。 もしくは、高速化するためのリファレンスページ教えてください。 はじめに Springフレームワークは、DI機能を持っており、依存関係を疎にできます。 テストするときは、@SpringBootTestのアノ…

【Spring】共通的かつ特別なハンドリングを行いたかった

共通的かつ一部コントローラークラスのみ特別なハンドリングをする方法を残します。 環境 Java 11 Spring Framework 共通的なコントローラのハンドリング RestControllerAdviceというアノテーションを付けると、全コントローラーを共通的にハンドリングする…