SpringBoot

SpringBootで独自例外を作ってControllerAdviceでハンドリングする

概要 独自RuntimeExceptionを作る 独自例外はControllerAdviceで横断的にハンドリングする テストを書く 前提 Kotlin RestControllerを想定 ゆえにRestControllerAdviceを使う テストはSpock 独自例外の作成 RuntimeExceptionを作成 コンストラクタ引数はnul…

AWS CodeDeployでSpringBootのデプロイが終わらない #AWS

概要 AWS CodeDeployを使ってSpringBootをEC2にデプロイするようにした。 bashのスクリプトを使って、javaコマンドのバックグラウンド実行(&)で起動したところデプロイが終わらなかった。 もう少し正確にいうと、スクリプトは期待通りに動作し、Bootアプリ…

SpringBootを環境毎にいい感じに起動する #SpringBoot

Intro SpringBootは設定をapplication.yml(properties)で管理するが、システムプロパティやコマンドライン引数で上書きすることができる。 もちろんprofileを用意して切り替える形でも良いと思うんだけど、環境依存系の設定の場合、環境変数を利用するなどし…

SpringBoot+MyBatisでRDBMS毎にSQLを切り替える #mybatis

概要 RDBMS毎(例えばMySQLとPostgreSQL)で同じ目的のSQLでも構文に違いがあったりする。 MyBatisでは VendorDatabaseIdProvider を使うと、接続先のDBによって発行するSQLを切り替えることができる。 SpringBootで利用する方法についてまとめる。 VendorDa…

spring-security-testを使おう

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>…

spring-bootアプリをherokuにデプロイする #heroku #SpringBoot

前提 herokuのアカウントは作成済 SpringBoot単独で起動可能にしている(外部DB等を必要としない) git管理されている heroku CLIのインストール Macだとhomebrew。 brew install heroku Heroku CLI | Heroku Dev Center Procfileの作成 プロジェクト直下に …

application.ymlの値をJavaアプリケーション側で受け取る #SpringBoot

org.springframework.beans.factory.annotation.Value を使うとよい。 ただし、まとまった単位で管理したいときは @ConfigurationProperties を使うのがよさげ。 例 @Configuration public class AppConfig { @Value("${spring.datasource.schema}") private…

SpringBootでMybatisの設定を動的に書き換えられないか挑戦してみた(失敗した)

MyBatisのConfigをJava側で動的に書き換えられないか調べてみた。 結果できなかったんだけど、備忘録として。 stackoverflow.com org.apache.ibatis.session.Configuration に値を突っ込むことでどうにかなりそう? configuration.getVariables().put("globa…

SpringBootでH2の管理コンソールを使う #springboot

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のWebAPIでResponseのJSONをPretty Printにする #springboot

SpringBootでWeb APIを作ってる時に、ResponseのJSONをPretty Printにしたくなった時の対応。 やりたいこと こういうのを {"hoge":[123,456],"huga":"Yeah!","piyo":{"code":"AA1234","name":"Bob"}} こういう感じにしたい { "hoge" : [ 123, 456 ], "huga" …