CLOVER🍀

That was when it all began.

Spring

Spring Frameworkで、REQUIREDな伝播レベルのトランザクションがネストした時の例外の扱いを確認する

これは、なにをしたくて書いたもの? Spring Frameworkを使っていると、トランザクション管理を@Transactionalアノテーションを使って宣言的に書いていることが 多いと思います。 @Transactionalを使った場合、例外(デフォルトではRuntimeExceptionのサブク…

Spring Boot × Bean Validationで、自作Validator+メッセージファイルを組み込む

これは、なにをしたくて書いたもの? Spring Boot(Spring Framework)を使って、Bean Validationのメッセージを変更したりするのをどうやるのかをよく覚えて いなかったので、確認してみることに。 結局、Bean Validationの復習的な感じになりましたけど。 …

Spring Boot/Spring Frameworkで、プロパティファイルを読み込む(JavaConfig)

これは、なにをしたくて書いたもの? Spring Frameworkで、プロパティファイルをJavaConfigにマッピングする場合、あとProfileも含めて…という時は どうするんだっけ?というのをよく忘れるので。 メモしておこうかなと。 Spring Frameworkで、プロパティフ…

Spring Boot Actuatorで、Micrometerで収集したメトリクスをログに出力する

これは、なにをしたくて書いたもの? Spring Bootには、Spring Boot ActuatorおよびMicrometerを使うことでメトリクスをモニタリングシステムで収集することが できます。 ここで、収集先のモニタリングシステムがない場合にログ出力でもできないかな?と思…

Spring Frameworkの@Transactinalのロールバックに関する設定を確認する

これは、なにをしたくて書いたもの? Spring Frameworkで@Transactionalアノテーションを使った時の、ロールバックに関する設定を確認しておきたいな、と 思いまして。 @Transactionalアノテーションを使ったトランザクション管理 Spring Frameworkのドキュ…

Spring FrameworkのJDBC接続とスレッド(TaskExecutor利用)の関係を確認してみる

これは、なにをしたくて書いたもの? Spring FrameworkのJDBC接続(Connection)は、スレッドに紐付けられて管理されていたはずなので。 ここで、タスク実行の仕組みを使い、別スレッド内でデータベースアクセスを行った場合はConnectionが別になるのかなと…

Spring FrameworkのTask Executionを試す

これは、なにをしたくて書いたもの? Spring Frameworkには、タスク実行とスケジューリングの機能があります。 Task Execution and Scheduling 今回は、タスク実行にフォーカスして見ていきたいと思います。 具体的には、TaskExecutorとThreadPoolTaskExecut…

Azure Storege向けのSpring Boot Starterを試してみる

これは、なにをしたくて書いたもの? ローカルで、Azure StorageエミュレーターのAzuriteの使い方を調べたので、今度はJavaから使ってみます。 Azure Storageエミュレーター、Azuriteを試す - CLOVER Azureで使えるSpringライブラリがあるようなので、こちら…

Spring Cloud Functionを試してみる

これは、なにをしたくて書いたもの? Spring Cloud Functionを、ちょっと試してみようかな、と。 Spring Cloud Function Spring Cloud Functionとは、関数(Function)を使ってロジックを実行する仕組みです。特定の実行環境に依存せず、 同じコードでWebの…

Spring BootのCloud Native Buildpacksサポートを試す

これは、なにをしたくて書いたもの? Spring Boot 2.3から、Cloud Native Buildpacksを使ったDockerイメージの作成ができるというので、ちょっと試しておこうかなと。 Support for building Docker images using Cloud Native Buildpacks Spring Boot 2.3.0.…

Spring Initializrをcurlで呼び出して使う

これは、なにをしたくて書いたもの? Spring Initializrを、curlで使ってみようかなということで。 できることは前々から知っていたのですが、自分でもちょっと試しておこうという気になりまして。 Spring Initializr Spring Initializrは、Spring Bootプロ…

Spring BootのUber JARで、アプリケーションコードとJARを作成するプロジェクトを別々にする(オマケでrequiresUnpack)

これは、なにをしたくて書いたもの? ふと、これをやってもふつうに動くのかな?と思ったので。 いや、動いたんですけど。 Spring BootでSpring Web MVCを使って作成したMavenプロジェクトと、それをUber JARにパッケージングするMavenプロジェクトを 別々に…

Spring Boot+Micrometerでメトリクス取得から、Prometheus/Grafanaを使ったグラフ表示まで

これは、なにをしたくて書いたもの? メトリクスやモニタリングまわりにあまり勘所がないので、少しずつ試してみようと Spring Bootを使っていると、Micrometerというものが便利らしいので、まずはこれを メトリクスの収集にはPrometheusを、可視化にはGrafa…

Spring Cloud Gatewayで遊ぶ

これは、なにをしたくて書いたもの? Spring Cloud Gatewayという、API Gatewayを構築できるライブラリがあるらしい けっこう面白そうな機能を持っている雰囲気なので、1度触っておこうかと というわけで、Spring Cloud Gatewayをお試しということで、遊んで…

カサレアルさんの「Spring Security入門」を受講してきました

カサレアルさんで開催されている、「Spring Security入門」を受講してきました。 Spring Security入門 | 株式会社カサレアル ラーニングサービス 入門したよー pic.twitter.com/LSfJdiGCrG— かずひら (@kazuhira_r) 2018年10月24日 受講してみて、とても良い…

RESTEasy Spring Boot Starterを試す

これは、なにをしたくて書いたもの? RESTEasy Spring Boot Starterというリポジトリを見つけたので、試してみようかと そういえば、Spring BootにはJAX-RS and Jerseyがあったので、RESTEasyで1度試してみるのもいいかもと そういう、単純な動機です。 REST…

Spring Securityを使って、KeycloakでOpenID Connect

ちょっと前に、KeycloakのClient Adapterを使って、Keycloakに対してOpenID Connectを使って連携するエントリをいくつか 書いてみました。今度は、KeycloakのClient Adapterは使わず、もう少し汎用に近いライブラリでKeycloakに対してOpenID Connectを使って…

Spring WebFluxのFunctional Endpointsを試す

Spring WebFluxを使ったプログラミングスタイルには、Spring MVCと同じAnnotated ControllersとFunctional Endpointsが ありますが、Annotated Controllersの方しか試していなかったので、そろそろFunctional Endpointsも試してみようかと。Spring WebFlux /…

Minishift上に、Uber JARなSpring Bootアプリケーションをデプロイする

Minishiftから引き込まれるOpenShift Originには、WildFlyのImageStreamが含まれています。これを使うとWARファイルはデプロイできるのですが、Spring Bootアプリケーションでよくあるような、 組み込みTomcatを使用したUber JARの場合とかどうなるのかなぁ…

KeycloakのSpring Security Adapter+Spring Boot Adapterを使ってOpenID Connect

KeycloakのSpring Boot Adapterをこの前試してみたのですが、Keycloak 4のSpring Boot 2 Adapterを試す - CLOVERこれとは別にSpring Security Adapterがあるようです。Spring Security AdapterSpring Boot Adapterを見ていた時に、Spring Security Adapterが…

Keycloak 4のSpring Boot 2 Adapterを試す

Keycloak 4.0.0.Finalがリリースされました。Release Notesを見ていると、その中にSpring Boot 2へのサポートが追加されたと 書かれていたので、ちょっと試してみようかと。Keycloak 4.0.0.FinalSprint Boot 2ところが、ドキュメントにはSpring Boot 2につい…

Spring Cloud StreamのReactive Programming Supportで遊ぶ

Spring Cloud Streamには、Reactor…Reactive Programmingに対するサポートがあります。Programming Model / Reactive Programming Support今まで、Reactiveでない方のAPI(詳細見てませんけど、対比してなんて言うんだ?)を使ってばかりでしたが、今回はRea…

Spring Data for Apache Cassandra(Reactive)で遊ぶ

そろそろ、Spring WebFluxを使いつつ、データストアも組み合わせて覚えていきたいなと思いまして。Reactiveな接続がサポートされているのは、Redis、Couchbase、Apache Cassandra、MongoDBですが、この中なら個人的には Apache Cassandraで試しておきたいと…

Spring WebFluxでProxyサーバーを書いてみる

ちょっとしたお題がありまして、Spring WebFluxでProxyサーバーを書いてみました。お題は、こんな感じで。 Reverse Proxy 緩いProxyサーバー(X-Forwarded〜とかは気にしない) ほぼなにも考えず、バックエンドへのリクエストとレスポンスの内容を転送する G…

Queryアノテーションが使えるようになった、Spring Data Hazelcastを試す

Spring Data Hazelcast 1.1が半年くらい前にリリースされていたのですが、このバージョンから@Queryアノテーションを 使うことができるようになっていたみたいです。GitHub - hazelcast/spring-data-hazelcast: Hazelcast Spring Data integration Project h…

Spring Fest 2017に参加してきました #jsug

両国にあるKFC Hall & Roomsで行われた、Spring Fest 2017に参加してきました。Spring Fest 2017日本Springユーザ会主催、Springのイベントに参加するのは、これが初めてですね。平日の開催でしたが、ちょっと行ってみたいなぁと思って会社を休んでの参加と…

Spring Cloud Stream(+Apache Kafka)でDead Letter Queueを試す

Spring Cloud Streamでは、Binderのエラーハンドリングの仕組みとして、Dead Letter Queueというものがあります。Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3 / Error HandlingRabbitMQにDead Letter Exchanges(DLX)というも…

InfinispanのSpring Session Support(Remote)を試す

前に、Infinispan 9から入ったSpring Sessionのサポート(Embedded Mode)を試しました。InfinispanのSpring Session Support(Embedded)を試す - CLOVER今度は、Remote(Hot Rod)で試してみたいと思います。Externalizing session using Spring Sessionど…

Spring Cloud StreamでSchema Evolution

Spring Cloud Streamのドキュメントで、Schema Evolutionというものが載っていて、ちょっと興味があったので 試してみることにしました。Schema evolution supportSpring Cloud Stream Brooklyn.M1 is available Schema Evolutionとは? Spring Cloud Stream…

InfinispanのSpring Session Support(Embedded)を試す

Infinispan 9から、Spring用のモジュールにSpring Sessionのサポートが入りました。Externalizing session using Spring SessionEmbedded Mode、Client/Server Mode両方で使うことができます。今回は、Embedded Modeで使ってみましょう。また、Spring Boot…