BullよりElk

洋服と食をこよなく愛するWebプログラマ。

Java

Hibernate Enversで履歴管理

エンティティが登録、更新、削除された履歴を管理します。Hibernate Enversは、履歴管理テーブル全体を管理するエンティティ(デフォルトでRevinfo)をいて、自動採番されるid(プロパティ名はrev)と履歴を永続化した日時(プロパティ名はrevtstmp)の2プロ…

JUnit5試したみた #3(ParameterizedTest)

前回に引き続き、JUnit5について書きます。2018年1月15日に5.0.3がリリースされましたね。今回は、ParameterizedTestについてです。 元のソースコードはGitHubにおいてあります。 github.com ParameterizedTest ParameterizedTestは、指定した引数を用いて、…

JUnit5試したみた #2 (RepeatedTest)

JUnit5のRepeatedTestで遊んでみた

JUnit5試したみた #1

JUnit5が9/10にリリースされました。リリースからちょっと時間が経ってしましましたが、JUnit5について書きたいと思います。 What' new JUnit5? 大きな違いと言えば、3つの異なるサブプロジェクトから構成されていることです。以前のバージョンまでは、1プロ…

AssertJで流れるようなインターフェースでアサーションを書こう #1

みなさんユニットテスト書いてますか?アサーションライブラリは何を使ってますか?私は、Assert Jが好きで使ってます。AssertJは、Javaのアサーションライブラリで、主にAssertJ CoreとAssertJ SwingとAssertJ DBがあります。 今回は、AssertJ Coreについて…

ThymeleafでNumber.javaを継承したクラスをメッセージ式のパラメータとして渡すと千の位で区切ってくれる話

先日、仕事でThymeleafで千の位で区切って表示することをやりました。いわゆる金額表示です。 結論から述べると、以下のようにすると、実現できます。 ちなみにこれはたまたま発見できちゃいました。。。笑 最初は、次のように書いてました。 <p th:text="${#numbers.formatInteger(1234567890, 3, 'COMMA')} + '円'">1,234,567,890円</p>…

ThymeleafとJSPを共存させた話

転職して、JSPを使っている会社に入りました。今どきJSPはないだろ!っていうことでThymeleafと共存させることにしました。 プロジェクト構成は、こんな感じです。 JavaCofigでBean定義を行うプロジェクト構成 xmlでBean定義を行うプロジェクト構成 では、さ…

バブルソート

バブルソートは最も単純な整列法です。 バブルソートのアルゴリズム 配列の末尾から先頭に向かって隣り合う要素を比較する 後ろの要素が前の要素よりも小さければ交換する 1と2を繰り返す 以下が、バブルソートのJavaプログラムです。 import java.util.Arra…

Spring Actuatorが誰でもみれなくなっちゃったの巻

Spring Actuatorで登録されてるBeanをみようと思って、pom.xmlにSpring Actuatorを追加しました。(以下参照) Versionはご自由にどうぞ! <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>1.5.1.RELEASE</version> </dependency>そして「http://localhost:8080/beans」に…

Java標準ライブラリを学ぶ #1

Javaエンジニア養成読本を読んで気になったところをまとめていこうと思います。今回は第4章。 文字列を扱う 文字列を比較するときに気をつけること 「==」は使用できない Stringクラスはnew演算子でインスタンスを生成することが稀なため、インスタンスの識…

ユニットテストのナレッジ #1

1ヶ月ぶりに更新します。今年はもっとインプットを増やしてアウトプットも増やしていこうと思います!まずテスト対象クラスはこちらのShopService.java @Service public class ShopService { @Autowired private ShopRepository shopRepository; public Sho…

PrivateメソッドとPrivateフィールドのユニットテスト

表題の通り、備忘録として。Target.java(テスト対象クラス) public class Target { private String str = "test"; public String getStr() { return this.str; } private String thisIsPrivateMethod(Integer number) { return number == 1 ? "One" : "Oth…

JMockitを使ってprivateメソッドをモックにしてみた話

ユニットテスト書いてて、関係ないprivateメソッド通りたくないな〜と思ってググってたらJMockitなるすばらしいものがあったので忘れないうちに!まず、 Maven Repository: org.jmockit » jmockitからpom.xmlにjMockitを追加! <dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> <version>1.30</version> </dependency> J…

クライアントとサーバの通信の流れを見てみよう!

入社当時Webの勉強のためにWebサーバ作っていたのですが、まだできておらずWebの理解を深めなきゃという気持ちで再び取り組みはじめました。 今回は、サーバとクライアントの通信がどのように行われているのかについて書きます。まず、クライアントとサーバ…

ThymeleafでformのList<Object>フィールドに値をいれるのにはまった話

仕事しててすごくハマった話。 type="hidden"でListの指定したインデックス番号のidに値をつっこもうと思ったとき、以下のようにするとうまくpostできました。 BookForm.java @Getter @Setter public class BookForm implements Serializable { private List<Detail></detail>…