HackToTech

Hack To Technology

kotlin

mockito-kotlinでvalue classがサポートされたらしいのでメモ

控えめに言って神 github.com 5.4.0のリリースに含まれている github.com build.gradle.kts plugins { kotlin("jvm") version "2.0.0" } group = "com.github.atr0phy" version = "1.0-SNAPSHOT" repositories { mavenCentral() } dependencies { testImplem…

SpringBootで@Repositoryがついたクラスのメソッドから投げられた例外を変換して投げ直す

個人的な備忘録 レイヤードアーキテクチャでアプリケーションを作っていて、 賛否両論あると思うがドメイン層のバリデーションを作成時とDBからの再構成時にチェックしていて、 作成時は例外をそのまま投げたいが、再構成時はそうしたくないと思っていたので…

LocalVariableTableParameterNameDiscovererが削除されてAutowireに失敗するようになった話

github.com SpringBootを3.2.0に上げた際に、 同じ型のBeanを定義していて、名前による(Qualifierではない)Autowireが失敗するようになってしまったので、それの備忘録 とりあえず複数のBeanがマッチするところまでの話は以下の記事に書いてるので端折る www…

SpringBoot + KotlinでListの要素にConstraintsをかけたかった話

tl;dr コンパイラオプションに -Xemit-jvm-type-annotationsを指定する必要がある あとの文章は個人的なメモ リストの要素にConstraintsをかけたかったが、 なんか一見正しく見えるのに正しく動かなかった package com.example.exampleboot3 import org.hibe…

dependabotのgradleにKotlin DSLでpluginsとdependenciesで同じバージョンを指定してPRを作らせたい

残念ながら、gradleのバージョンが古くて(6.9系)version catalogが使えなかったので、その場合にしか役に立たない備忘録 おそらくgradleのバージョンが7.2以上なら多分version catalog使って、こんな面倒なことしなくても色々解決する気がしている developer…

ConstraintValidatorのisValidでエラーメッセージを変更する

isValid 内でValidationMessagseのキー指定して切り替えって出来るんだっけ?ってなったので、個人的なメモ書き ドキュメントを読んでいたら出来そうだったので試した あんまり使う機会はなさそうではある(基本的にはConstraintsは分けるし、相関チェックみ…

BeanValidationでControlCharacterが含まれる場合をバリデーションする

リクエストとかでControlCharacterが混じっていると邪魔になるので弾きたかったという話 調べてもすぐにぱぱぱっと出てこなかったりして面倒なのでメモがてら書く どちらも空文字は許可するようにしてある テストはソースに書いてあるので興味があれば impor…

SpringでRollbackされた時に別トランザクションでデータの保存をしようとしてたのでメモ

大まかなコードのイメージ package com.example.app.application import com.example.app.domain.Sample import com.example.app.domain.SampleRepository import org.springframework.aop.framework.AopContext import org.springframework.stereotype.Serv…

SpringBootでTomcatの特定のValveを削除する

タイトル通り あんまり使い道はないと思われるが、ちょっと簡単に削除が出来るのか気になったので個人的なメモ 消すのはRemoteIpValve 設定の話はこの辺 バージョン SpringBoot(2.7.5) # application.properties server.tomcat.remoteip.protocol-header=x-f…

Spring Bootのエラーページ周りを色々見たのでメモ

Spring bootを仕事で使っていて、 server.error.whitelabel.enabled を指定すると具体的にどうなるのかとか、 誰がどうレスポンスを生成しているのかとか、 この辺イマイチ浅い理解をしていてちゃんと説明出来そうにないのでちゃんとデバッガを動かしながら…

test-retry-gradle-pluginで特定のJunit5のNested ClassのRetryを実行させる

公式に書いてなくて探してすぐに見当たらなかったので備忘録 github.com Nested Classの指定は . ではなく $ でのアクセスになる # build.gradle.kts plugins { id("org.gradle.test-retry") version "1.4.1" } tasks.withType<Test> { useJUnitPlatform() retry {</test>…

KotlinのCompanion ObjectでGenericsを使った関数を定義したい

個人的な備忘録 IDのクラスに対してGenericsを使った共通の関数を持たせたいなーというのがあって、 reflection使えばとりあえず出来そうだったのでこれを仕事で使ってみている ただなんかcompanion object側のクラスに対してinterface継承させずにやる方法…

KotlinでmockStaticを使おうとしてちょっとハマった話

kotlin 書いてて、mockito-inline の mockStatic を使おうとして 少し時間無駄にしたので、他の人が同じことで時間を無駄にしないように書いとく tl;dr @JvmStatic のAnnotationをつける必要がある 普通に考えれば当たり前なんだけど、つけ忘れてた時にエラ…