CLOVER🍀

That was when it all began.

Spring

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…

Spring Boot CLIで、CommandLineRunnerを使った簡単なアプリケーションを作る(ついでにUber JARにする)

Spring Boot CLIを使うと、Groovyスクリプトで簡単にSpring Bootアプリケーションを書くことができます。http://d.hatena.ne.jp/Kazuhira/20160214/1455460595まあ、小さなスクリプト程度で済むものであれば、これでもいいかなという気もしますね。62. Using…

Spring Cloud Stream(+Apache Kafka)で、Partition Supportを試す

前に、Spring Cloud Stream+Apache Kafkaで、Consumer Groupを設定した時の動作を見てみました。Spring Cloud Stream+Apache Kafkaで、Consumer Groupを設定した時の挙動を確認する - CLOVERこの時にも少しパーティションは使っていたのですが、今回はより…

Spring Cloud Stream+Apache Kafkaで、Consumer Groupを設定した時の挙動を確認する

Spring Cloud Streamの設定のうち、以下の部分ですが spring.cloud.stream.bindings.input.group= spring.cloud.stream.bindings.<channelName>.group=指定した方がいいよーという話は見るものの、効果のほどを自分で確認したことがなかったので、 気になって見てみること</channelname>…

Spring Cloud StreamのTest Supportを使う

Spring Cloud Streamを少しずつ試しているわけですが、毎回SinkからSourceまで作って動かしていくのは ちょっと面倒なので、テストコードで動かす方法を学んでみようと思います。Spring Cloud Stream自体に、テストのサポートがあるようですし(P.113)。Eve…

Spring Cloud StreamのProcessorを書いてみる

始めたばかりのSpring Cloud Streamで、前回はとりあえずSourceとSinkを作ってみたものの、 今回はProcessorを書いてみたいと思います。 Processorとは? Binderにメッセージを送り込むのがSource、メッセージを受け取るのがSinkですが、この両方を併せ持っ…

はじめてのSpring Cloud Stream

最近興味があるプロダクトのひとつに、Spring Cloud Streamがあります。眺めていてだいぶ時間が経っているのですが、 そろそろ試してみようかなということで。 Spring Cloud Streamとは? マイクロサービス間のメッセージングを実現するプロダクトです。Spri…

Spring Data GeodeでRepositoryを使う(ちょっとだけPDXも)

Spring Data Geodeで、Repositoryを試してみます。こちらのエントリの続きです。1.0.0.INCUBATINGになったSpring Data Geodeを軽く試す - CLOVER今回は、Queryを使ってみましょう。とても簡単な例でいってみます。あと、ちょこっと PDXもからめてみたいと思…

Spring BootのAutoConfigurationを自分で作ってみる

Spring Bootの勉強として、自分でAutoConfigurationを作ってみようかなと思いまして。AutoConfigurationの内容を読んだりはしますが、自分で作ってみた方がより理解が深まりますよね。というわけで、お題を以下のように設定してみました。 Spring Boot 1.5.1…

Infinispan Serverを組み込みでSpring Boot上で動かせるようにしてみた

Spring Bootの勉強を兼ねて、かなり誰特ですがInfinispan Serverの各種モードをSpring Boot上に組み込んで 動かせるようにしてみました。ソースコードはこちら。 https://github.com/kazuhira-r/infinispan-embedded-server-spring-boot動かせるプロトコルは…

Spring Data Geodeで、SpringのCache Abstractionを使う

Spring Data Geodeには、SpringのCache Abstractionで使うCacheManagerの実装が含まれています。 ※もとはもちろん、Spring Data GemfireのものですがSupport for Spring Cache Abstraction今回、こちらを試してみたいと思います。なお、構成はClient/Server…

1.0.0.INCUBATINGになったSpring Data Geodeを軽く試す

Apache Geodeが1.0.0-incubatingとしてリリースされていますが、合わせてSpring Data Geodeも 1.0.0.INCUBATING-RELEASEになっています。とはいえ、Spring Data Geode用のページはなくて、相変わらずSpring Data Gemfireな わけですが。Spring Data for Pivo…

SpringのCache AbstractionとTransaction

SpringのCache Abstractionには、トランザクションと連携する機能があります。ドキュメントにそれっぽいことは見当たらない気がしますが…。36. Cache Abstraction関連するクラスはorg.springframework.cache.transactionパッケージに入っていて、主要なクラ…

SpringのCache Abstractionで、複数のCacheManagerを合わせるCompositeCacheManagerを使う

SpringのCache Abstractionでは、バックエンドのキャッシュに対するCache Providerがあり、それぞれCacheManagerの 実装を提供していますが、複数のCacheManagerを組み合わせるCompositeCacheManagerというものがあります。Cache / Dealing with caches with…

SpringのCache Abstractionで、 アノテーションに複数のキャッシュを指定した場合の動きを確認する

SpringのCache Abstractionで提供される各種アノテーションでは、使用するキャッシュを複数指定することが できます。Cache / Declarative annotation-based caching複数のキャッシュを設定した時に、どのような動作をするのか確認してみましょう。なんとな…

Spring Boot+JacksonのDate and Time APIでフォーマットを変更する

Jacksonで、LocalDateTimeなどのDate and Time APIのクラスを使ってJSONを作成すると、デフォルトだと ちょっと困ったことになります。前提としてSpring Bootを使っているのですが、まずはpom.xmlに以下のように宣言。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo</artifactid></dependency>…