Tagbangers Blog

Spring

Spring Data Jpaが提供するQuery Method機能を調べてみよう

Spring Data Jpaが提供する機能を調べてみよう Query Methodの三つの機能 メソッド名前でクエリ作成 メソッド名前でJPA NamedQuery呼び出し @Queryアノテーションを使いレポジトリインタフェースに直接クエリを定義 メソッド名前でクエリ作成 Spring Data JPAがメソッドの名前を分析してJPQLクエリを実行してくれる。 注意点: エンティティの名前が変更されると必ずインタフェースに定義したメソッドの名前も一緒に変更する必要がある、そうでないとアプリケーションを立ち上げる時点でエラーが生じる。こうやってアプリケーションのロード時にエラーを検知できるの...

Springの学習日記Part2: デザインパターン

もう春の兆し 最近暖かくなってきたのものあって朝は清々しくて気持ちいいですね(夜は寒いけど)。こういう日はランニングとかしたら気持ちいいだろうなーなんて思いながらいつもゴロゴロしてます笑。 とはいえ運動不足も嫌なのでスクワッドは毎日欠かさずやるようにしてます。なんかふくらはぎが第二の心臓らしい?(のでちょっと調べてみた) ふくらはぎの筋肉を動かすことで、足に滞っている血液を心臓の方へ押し戻すことができます。 このことから、ふくらはぎは別名「第二の心臓」 と呼ばれており、とても大切な働きをしているのです。 なるほど、血液を心臓に押し戻さないといけないとどうなる?・・・って想像したらなんとなく茶番...

Springの学習日記Part1: DIについて

この記事を書き始めようと思ったきっかけ 普段の業務でバックエンドをSpring Bootで開発しているのですが、どうも自分が書いているとSpringについて基礎を知らないことがわかり、また何がわからないのかをうまく言語化した上で相手に伝えられない事態になっていました。 また上司に言語化する練習をすることを勧められた経緯もあって、自身の過去をよくよく振り返ってみた結果、コードを書いていく中で湧いてきた疑問や、自身の考えについてよく整理できていないまま(最適なワードが見つからないまま)相手に伝えていたことがしばしばありました。 当然その状態では、自分が求めている情報について検索したり相手から情報を...

Spring + React の Web アプリを Kotlin のみで作成する

先月から Tagbangers にジョインした生粋のハマっ子こと JK です(元インターン生) 私の好きなプログラミング言語の1つは Kotlin です Kotlin は JetBrains 社が開発した言語で主に Android アプリ開発で使用できる言語として有名です JK ≒ JetBrains Kotlin 今回はそんな Kotlin を用いて簡単な Web アプリを1から作成していこうと思います! GitHub 今回作成するプロジェクトの完成形は下記のリポジトリにプッシュしています koyama-tagbangers/kotlin-react-spring-sample What's...

Keycloak と Spring Boot アプリケーションで OpenID Connect の Authorization Code Flow を確認する

はじめに 本日は、以下のようなシーケンスで OpenID Connect の Authorization Code Flow を確認していこうと思います。 開発済みのプロジェクトのいくつかで Keycloak,OpenID Connect, Spring Cloud Gateway が使われており順に理解していく必要を感じたため、今回は基本的な構成から学んでいきたいと思います。 UserInfo Endpoint(Spring Boot) および IdP(docker container として起動) のサンプルコードは以下のリポジトリに用意しました! https://github.com/k...

SpringアプリケーションでIPアドレスの検証がしたい!

オーストラリアからこんにちは! インターン生の古家です。 みなさんはSpringのアプリケーションでIPアドレスの検証がしたい!と思ったことはありますか? 例えば、アプリケーションにIPアドレスによってアクセス制限をかけたいときなどに、IPアドレスの検証が必要になります。 このサイトにあるように、configレベルで静的に制限をかけるのはSpring Securityの機能で簡単にできます。しかし、例えばユーザーごとに別々のIPアドレス制限をかけるなど、動的に制限をかけたい場合はどうでしょう? 実はSpring Securityには、IpAddressMatcherというクラスがあります。これ...

Spring Bootがプロパティファイルを読み込む方法に一同驚愕!!

こんにちは、インターン生の古家です。 今回はSpring Bootのプロパティファイルの理解を深めるために調査を行い、まとめてみました。 プロパティとは? SpringBootではアプリケーションコードの外に設定値を持つことができます。 この設定値がプロパティと呼ばれています。 ファイル形式は.propertiesと.ymlを使用でき、その他にも環境変数やコマンドライン引数を用いて設定値を与えることができます。 プロパティ値を直接ぶっこむ2つの方法 以下のアノテーションを使うとBeanに対して直接プロパティ値を与えることができます。 @Value フィールドを@Valueアノテーションで装飾し...

Domain Event with Spring

Domain Event とは? 売上というドメインがある場合 、売上ドメインでは様々な出来事がおきます。 「売上ができた」「売上が変更された」「売上が削除された」 ここで、「売上ができた」という出来事は副作用があるかも知れません。 伝票ができるかもしれませんし、在庫が変動することもあるでしょう。 これらの副作用を売上ドメインだけで完結しようとすると、 伝票ドメインや在庫ドメインとの深い関係を持っている状態になります。 我々の世界ではこれを密結合と言ったりします。 疎結合と密結合であれば、疎結合がいいと言うのはなんとなくわかりますね。 マイクロサービスがもてはやされているのもこれが一つのキーワ...

Spring I/O 2019 Slides

Keynote Juergen Hoeller / Ben Hale / Violeta Georgieva and Sébastien Deleuze https://twitter.com/sdeleuze/status/1129017544013221888 Moving from Imperative to Reactive Paul Harris The State of Java Relational Persistence Maciej Walkowiak https://speakerdeck.com/maciejwalkowiak/the-state-of-java-rela...

HATEOAS をおさらい

HATEOAS とは? Hypermedia As The Engine Of Application State (HATEOAS) is a component of the REST application architecture that distinguishes it from other network application architectures. With HATEOAS, a client interacts with a network application whose application servers provide information dynami...