Spring Boot
なんてアホな子なのだ! 調べた DefaultのExists ModeはFTP STAT なのでここで判定している。 https://github.com/spring-projects/spring-integration/blob/main/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/FtpRem…
背景 Spring BootでRest APIを作る際、Spring MVCならNoHandlerFoundExceptionがあるため、設定していないURLにRequestが来た場合のハンドリングは ExceptionHandlerで簡単に実装できる。 @RestControllerAdvice class ErrorAdvice { @ExceptionHandler(valu…
WebFluxのサンプルをネットで探すとAPIの例しか見つからなくて、俺はHTML出力したいんだよ!って思ったので自分で書きました。 Data Drivenは試していない Controller Spring MVC風のやつ。Rendering を返す。Kotlinならsuspend functionにするだけでReacti…
以前、↓みたいな記事を書きました。 Cloud Native Buildpacksのrun:base-cnb に curlを入れたい - 秋の魔法使い Spring Bootのコードを読んで研究したところ、もっと一般的な解決方法に気づいたので記事にしておきます。 (普通にリファレンスにも書いてあっ…
Spring Boot 2.4になって、application.ymlの書き方がちょっと変わったのでメモ。色々便利になったようなのですが、k8sとか使っていないのであんまり恩恵がない 基本設定をapplication-base.ymlに記述し、環境ごとの差異をそれぞれのapplication-xxx.ymlに…
仕事で使うことになったので勉強しました 前回の記事 に適用します。 point ktlintはdetekt-formattingを利用する。そのためにmaven kotlinx repositoryを追加する multi moduleすべてを見るようにinput files を設定する checkでdetektも走るようにする bu…
Clean Architecture (Multi Module Project) のSpring BootでgRPCを使えるようにします。 仕事で使いそうなので勉強しました。本当はGoで作りたかったけど、誰も賛同してくれなかった。人望/Zero 😉
はじめに この記事内容は古いので、こちらを参考にしてください。 Spring Boot の bootBuildImage で custom runImageを利用する - 秋の魔法使い 以下、せっかく書いたので残しておくもの AWSのECSでサービスディスカバリを構築する場合、 タスク定義にhealt…
方法 application.properties以下のように設定する spring.http.encoding.force=false または spring.http.encoding.force-request=false 解説 Spring MVCはCharacterEncodingFilterでHttpServletRequest, HttpServletResponseのCharacterEncodingをoverride…
この記事の内容 pack CLIでLayer ArchitectのSpring Boot ApplicationのDocker Imageを作成する 上記の目的のために、Spring Boot 2.3.0.M1のlayered()をエミュレートしたshell scriptを書く 実用性皆無のネタ記事です 😑
現時点で考えたさいきょうのJib設定をメモしておきます。1週間の勉強での結論なのですぐに変わりそうですが コード内の、どうすっかなーみたいなコメントでお察しください。 Jibの記事は一旦これで終了にする予定です。 いままでの記事と同じく、multi-pro…
Jib Version 2.0.0からFat Jarが正式にサポートされました! Release jib-gradle-plugin v2.0.0 · GoogleContainerTools/jib · GitHub ※ 1.8.0 時点ではFat Jarでの起動をデフォルトでサポートしていなかったので、ExtraDirectoryにJarをCopyしてEntryPoint…
Spring Boot ApplicationをDocker image化する手段として Cloud Native Build Pack Jib jdeps && jlinkで軽量なDocker imageを作る etc... 等があります。(あります、とか大上段からものを言っていますが、ここ1週間くらいで仕入れた知識です。私はクソ雑魚…
Constructor Injection class Foo( private val bar: Bar? ) { } Field Injection class Foo { @Autowired(required = false) lateinit var bar: Optional<Bar> } 前回の記事に関連して小ネタ。@Autowired(required = false)を知らなかったのでメモ。 Constructor</bar>…
Spring Bootで自作ライブラリを1から作ったことがなかったので試してみました。 作成するライブラリ 文字列を引数で与えるとPrefixをつけて返してくれるMyTextDecoratorを作成します。 さらにadditionalを定義することで追加で文字列を付けてくれます。 gith…
記事の概略 SpringのBeanにはBean Lite Modeというものがある Spring 5.2から@Componentの代わりに@Configuration(proxyBeanMethods = false)を指定することでBean Lite Modeにできる CGLIB Proxyが不要ならパフォーマンスがよくなる https://github.com/spr…
フロントエンド開発勉強日誌の続きです。 Thymeleaf導入 TypeScriptの開発環境設定 npm-scripts Polyfillを設定する IE11とかの古いブラウザに対応するためにPolyfillを設定します。 core-jsとwhatwg-fetchを入れる Polyfillの設定をする webpack.config.js…
Spring Boot 2.2.1 (Spring 5.2.1) から、WebClientで256KBを超えるJsonを扱うと DataBufferLimitException が発生するようになりました。Spring 5.1.11 以降でも発生すると思います。 (こっちは自分で試していません) issueはこちら になります。詳細は公式…
以前記事にしたプロジェクトをbuild.gradleからkotlin-dslに移行します。 build.gradle.ktsにすることでスクリプト内でKotlinを使えるようになるし、IntelliJの補完が賢くなるし、groovyの文法をいちいちググらなくてよくなります。Spring Initializrでのデ…
以前記事にしたプロジェクトをbuild.gradleからkotlin-dslに移行します。プロジェクト構成などについてはそちらを参照ください。 Spring Boot 2.2.0のリリースに伴いコードを書き直しました (最終更新: 2019/11/14) ※ リンクの記事はspring-data-r2dbc など…
Kotlin Fest 2019 での Kotlinコルーチンを理解しよう 2019 が素晴らしかったので、忘れないうちに復習することにします。 サンプルプログラムは前回記事にしたクリーンアーキテクチャのコードを利用しています。
build.gradleまで書いた前回記事の続きです。Apiをcallした体のプログラムを記述します。
要旨 Gradleの勉強。クリーンアーキテクチャを実装してみます。 この記事ではgradleについて記述します。実際のコードについては次回記事を参照ください。 元ネタはSpring IO 2019で紹介されていたこちら 以前書いたレイヤーアーキテクチャのサンプルはこち…
JUnit5のinner classを利用したBDD記法のサンプルです。 検証環境 software version OS MacOS Mojave Spring Boot 2.2.0.M4 Java Corretto-11.0.4.11.1 Kotlin 1.3.41 JUnit5 5.5.1
protocol bufferは通常gRPCで利用しますが、API定義をprotoファイルで行い 通信自体はHTTPで行いたい、というケースが実務でありましたので方法を記載します。 検証環境 software version OS MacOS Mojave Spring Boot 2.1.5 Java 1.8.0_192-b12 Kotlin 1.3.…
前置き 以前、静的な方法で複数データソースを利用する方法を記事にしました。 今回は透過的に複数データソースを利用する方法について記述します。 透過的とは、リクエスト時のユーザ情報とか、アクセス時間とか、何らかのパラメータを元にアクセスするデー…
Spring Boot × Gradleで起動時に読み込む設定ファイルを切り替える方法を3種類記載します。 方法の概説 spring.profile.activeで起動時のapplication.yml (application.properties) を指定 build時に環境毎の設定ファイルディレクトリをclass pathに追加 起…
前置き MyBatisを利用した複数データソースの実装には データソースごとのmapperをpackageレベルで分割する静的な手法と、SpringのAbstractRoutingDataSource を使って都度利用するデータソースを決定する動的な手法があります。今回は静的な手法のコードを…
要旨 Gradleマルチプロジェクトの勉強用です。Spring Boot2, Kotlin, Gradleを使ったシンプルなレイヤーアーキのサンプルです。 クリーンアーキテクチャの記事はこちら ソフトウェアバージョン software version OS MacOS Mojave Spring Boot 2.1.5 Java 1.8…