SpringBoot
概要 独自RuntimeExceptionを作る 独自例外はControllerAdviceで横断的にハンドリングする テストを書く 前提 Kotlin RestControllerを想定 ゆえにRestControllerAdviceを使う テストはSpock 独自例外の作成 RuntimeExceptionを作成 コンストラクタ引数はnul…
概要 AWS CodeDeployを使ってSpringBootをEC2にデプロイするようにした。 bashのスクリプトを使って、javaコマンドのバックグラウンド実行(&)で起動したところデプロイが終わらなかった。 もう少し正確にいうと、スクリプトは期待通りに動作し、Bootアプリ…
Intro SpringBootは設定をapplication.yml(properties)で管理するが、システムプロパティやコマンドライン引数で上書きすることができる。 もちろんprofileを用意して切り替える形でも良いと思うんだけど、環境依存系の設定の場合、環境変数を利用するなどし…
概要 RDBMS毎(例えばMySQLとPostgreSQL)で同じ目的のSQLでも構文に違いがあったりする。 MyBatisでは VendorDatabaseIdProvider を使うと、接続先のDBによって発行するSQLを切り替えることができる。 SpringBootで利用する方法についてまとめる。 VendorDa…
Spring Securityを使ってるSpring BootのWebアプリでテストを書く時に、認証自体をテストしたいのでなければ spring-security-test で認証情報を簡単にMockできる。 pom.xml spring-security-test を dependency に追加する <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin</artifactid></dependency>…
前提 herokuのアカウントは作成済 SpringBoot単独で起動可能にしている(外部DB等を必要としない) git管理されている heroku CLIのインストール Macだとhomebrew。 brew install heroku Heroku CLI | Heroku Dev Center Procfileの作成 プロジェクト直下に …
org.springframework.beans.factory.annotation.Value を使うとよい。 ただし、まとまった単位で管理したいときは @ConfigurationProperties を使うのがよさげ。 例 @Configuration public class AppConfig { @Value("${spring.datasource.schema}") private…
MyBatisのConfigをJava側で動的に書き換えられないか調べてみた。 結果できなかったんだけど、備忘録として。 stackoverflow.com org.apache.ibatis.session.Configuration に値を突っ込むことでどうにかなりそう? configuration.getVariables().put("globa…
spring:h2:console:enabled をtrueにするだけ。 spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:testdb;MODE=MYSQL username: sa password: h2: console: enabled: true SpringBoot起動後、下記にアクセスすると利用できる。 http:…
SpringBootでWeb APIを作ってる時に、ResponseのJSONをPretty Printにしたくなった時の対応。 やりたいこと こういうのを {"hoge":[123,456],"huga":"Yeah!","piyo":{"code":"AA1234","name":"Bob"}} こういう感じにしたい { "hoge" : [ 123, 456 ], "huga" …