サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
qiita.com/kazuki43zoo
リリースノートを見てたらNote記法がサポートされてた!! 今まで・・・引用記法を流用してNoteっぽいこと記載してたけど、そんなことしなくてよくなる!! 今までの自分 NOTE: 〇〇すると便利です。 WARN: 〇〇には注意が必要です。 IMPORTANT: 〇〇しないでください。 これからの自分
Spring BootでWebアプリケーションを作ろうとすると、「組み込みTomcat(サーブレットエンジン)」×「Spring MVC」の組み合わせでアプリケーションを作る事も多いと思います。その際に・・・自分が思っている通りに動かない時皆さんはどうしているでしょうか? Spring BootやSpring MVCに詳しい方はフレームワークのクラスに適当にブレークポイントを指定して、どこまで処理が想定通りに動いているか確認する!!という強者も中にはいるかも!?しれませんが・・・Spring Boot(Spring MVC)初心者の方は、何が起きているのかわからず・・・エラー解析に多くの(無駄な)時間をかけてしまうことがあるのではないかと思います。 どうすればよい? エラーの内容によって対処は変わりますが、ここでは・・・アプリケーション自体は起動したけど、自前で用意したController
今参画している案件でMySQL、Kafka、Cloud Pub/Sub、AWS SQS/SNSあたりを使ったアプリケーションを作成することになりそうなので・・・Testcontainersを利用してSpring Bootアプリケーションのテストをしようかな〜と考えています。今回はすご〜く簡単なデモアプリケーションを作ってみました。 今参画している案件では使わないけど・・・ PostgreSQL MockServer(擬似HTTP Server) を使ってテストするデモアプリケーションも作ってみました。 利用するもの Spring Boot 2.4.5 Testcontainers 1.15.3 JUnit 5 Docker MySQL in Docker PostgreSQL in Docker Apache Kafka in Docker Cloud Pub/Sub Emulator i
Spring Boot Actuatorには、インスタンス自体やインスタンス内で依存している外部リソース(ディスク、DB、メッセージングサービス、キャッシュサービスなど)の稼動状態(ヘルスチェック結果)を提供するエンドポイント(/actuator/health, /actuator/health/{name})があり、独自のヘルスチェック状態を提供することもできます。 独自のヘルスチェック処理を自動登録する方法 Spring Bootのリファレンスにサンプルコード付きで紹介されていますが、HealthIndicatorインタフェースを実装したクラスをDIコンテナに登録すると、Spring Boot Actuatorが自動で検出してくれます。 @Component // コンポーネントスキャンでDIコンテナに登録 public class MyHealthIndicator implemen
本エントリでは、SpringのDIコンテナがどんな感じで動作(オブジェクトの生成、依存オブジェクトの解決)しているのか?あたりを(ざっくり)紹介してみようかと思います。本エントリでは基本的には「DI」について知っている前提で記載するので、そもそも「DI」って何者?という方は、ネットや書籍などで「DI」について調べてみてください。 なお、本エントリの中で紹介するイラストの内容は、(正確性を求めると本エントリで紹介したいことの本質が損なわれる可能性があると判断し・・・)Springが行なっている実際の処理とは異なる部分があることをご了承頂きたいと思います。 DIという考え方を使わずにプログラムを書く SpringのDIコンテナを使ったプログラムを書く前に、まずは・・・DIコンテナおよびDIという考え方を一切使わずに、複数のクラス(オブジェクト)を使ってプログラムを書くとどうなるか見てみましょう
2019年7月15日にリリースした2.1の変更点をまとめました。 この変更では、既にEOLを迎えているSpring Boot 2.0.xへのサポートがなくなり、Spring Boot 2.1以上が必要になります。 なお、 mybatis-spring-boot-starterの使い方については、こちら(バージョン2.1対応済) mybatis-spring-boot-starter 1.3から2.0の変更点については、こちら mybatis-spring-boot-starter 1.2から1.3の変更点については、こちら mybatis-spring-boot-starter 1.1から1.2の変更点については、こちら mybatis-spring-boot-starter 1.0から1.1の変更点については、こちら も必要に応じて合わせてご覧下さい。 NOTE: ちなみに、mybati
今回は「Spring Framework 5.0 主な変更点」シリーズの第3回で、DIコンテナ関連の主な変更点(新機能や改善点など)を紹介していきたいと思います。 シリーズ 第1回: Spring Framework 5.0 主な変更点の概要 第2回: Spring Framework 5.0 コア機能の主な変更点 第3回: Spring Framework 5.0 DIコンテナ関連の主な変更点 第4回: Spring Framework 5.0 WebMVC関連の主な変更点 第5回: Spring Framework 5.0 Test関連の主な変更点 第6回: Spring Framework 5.0 WebFlux(Reactive Web Framework) (予定) 第7回: Spring Framework 5.0 Kotlinサポート (予定) 動作検証バージョン Sprin
Spring Data JDBC 1.0.0.BUILD-SNAPSHOT(-> 1.0.0.RELEASE)を試してみたJavaspringMyBatisSpringBootspring-data 2018年最初のエントリーは・・・@sndr さんの「Spring Data JDBC Preview」を見て「へ~」と思ったSpring Data JDBCを試した際のメモです。まだ単純なCRUDレベルのサポートだけのようですが、Spring Data JDBCが正式にリリースされてSpring Data RESTのサポート対象になることを(非常に)期待しています! ↓ 2018/9/21に正式リリースされたので、内容を1.0.0.RELEASEベースに修正しました! 検証バージョン Spring Data JDBC 1.0.0.RELEASE Spring Boot 2.0.5.RELEA
前回はSpring Security使ってLDAP認証できるよ〜というネタでしたが・・・今回は、CI/CDに関わるツール達(直接関係ない子もw)にログインするためのユーザー情報(認証情報)をLDAPで管理する方法をメモっておく。なお、各環境の構築にはDocker(Docker Compose)を使用した。 WARNING: 本エントリーでは各ツールへアクセスする際にhttpを利用する前提にしていますが、パスワードなどの秘匿情報や個人情報を扱う可能性があるのでhttpsでアクセスするのが望ましい。(完全にクローズな環境で悪いことする人がいない前提ならhttpでもよいかもしれませんが・・・) 対象ツール 今回は・・・実案件で使う可能性が高い以下のツールでLDAP認証を試した。 ツール名 ツール概要 利用バージョン
今回は、実際のアプリケーション開発を意識して、Spring Seucirtyが提供しているデフォルト動作をカスタマイズする方法をいくつか紹介していきたいと思います。 シリーズ 第1回:Spring Security 5でサポートされるOAuth 2.0 LoginをSpring Bootで使ってみる 第2回:Spring Security 5でサポートされるOAuth 2.0 Loginの処理の流れを(大まかに)理解する 第3回:Spring Security 5でサポートされたOAuth 2.0 Loginの処理の流れを(深く)理解する 動作検証バージョン Spring Boot 2.0.0.M7 Spring Security 5.0.0.RELESAE カスタマイズポイント 本エントリで紹介するカスタマイズポイントは以下の5つです。本エントリで紹介するのは、Spring Securi
前回「Spring Security 5でサポートされるOAuth 2.0 Loginの大まかな処理の流れを理解する」で大まかな処理の流れを紹介したので、それらをさらにブレークダウンした処理の流れなどをみていきたいと思います。 前提バージョン Spring Boot 2.0.0.M7 Spring Security 5.0.0.RELEASE 認可要求 クライアントAPからプロバイダの認可画面を表示(=正確にはクライアントからプロバイダへリダイレクト)する時の処理フローをみていきます。前回紹介した図だと、赤線で囲んだところがここでの説明対象になります。 認可要求(認可画面表示要求)が行われると、OAuth2AuthorizationRequestRedirectFilterを起点として、ClientRegistrationRepository、AuthorizationRequestRep
2017-11-23 21:40:39.451 INFO 66053 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 2017-11-23 21:40:39.451 INFO 66053 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 2017-11-23 21:40:39.451 INFO 66053 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mappi
第1回:Spring Security 5でサポートされるOAuth 2.0 LoginをSpring Bootで使ってみるJavaOAuthspring-securitySpringBoot Spring Security 5の目玉であるOAuth 2.0(& OpenID Connect 1.0)の認可サーバと連携したログイン機能を、Spring Boot上で使う方法を紹介します。(今回はSpring Boot上で使う方法の紹介だけにとどめます→仕組みの話は乞うご期待!!) 動作検証バージョン Spring Boot 2.0.0.M7 Spring Security 5.0.0.RELEASE Tomcat 8.5.23 NOTE: 2017/12/2 : Spring Boot 2.0.0.M7 (Spring Security 5.0.0.RELEASE)ベースに書き換えました。
public class Todo { private String title; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } package com.example; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Test; import java.io.IOException; import java.util.Arrays; import java.util.List; public class ObjectMapperJso
今回は今更ながら・・・・Spring Boot 1.4(Spring 4.3)上でMyBatis 2(iBatisといった方が馴染みがあるかな?)を使う方法を紹介します。なぜ今頃MyBatis 2の話やねん?と思う方がほとんどだと思いますが、このエントリーを書こうと思った動機は・・・Spring 3系がついに今年の12月(あと半月・・・)でEOLになるためです。 MyBatis 2とSpringの関係 Springは3系まではMyBatis 2との連携コンポーネントを提供していましたが、Spring 4系から華麗にDropされています。そのため、MyBatis 2を使っているアプリケーション(レガシーなアーキテクチャで作られているアプリ)はSpring 4にバージョンアップすることができませんでした。これまでは脆弱性など重要なバグが見つかればSpring 3系にもフィードバックされていまし
今回は、Spring Boot上で楽観ロックのテスト条件を確実に整える方法を紹介したいと思います。 動作確認バージョン Spring Boot 1.5.3.RELEASE テスト対象のサンプルアプリ 以下のように楽観ロックを行うコードに対するテストをみてみましょう。 package com.example.demo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.stereotype.Repository; import org.sp
今回は「Spring Framework 5.0 主な変更点」シリーズの第5回で、Test関連の主な変更点(新機能や改善点など)を紹介していきたいと思います。 シリーズ 第1回: Spring Framework 5.0 主な変更点の概要 第2回: Spring Framework 5.0 コア機能の主な変更点 第3回: Spring Framework 5.0 DIコンテナ関連の主な変更点 第4回: Spring Framework 5.0 WebMVC関連の主な変更点 第5回: Spring Framework 5.0 Test関連の主な変更点 第6回: Spring Framework 5.0 WebFlux(Reactive Web Framework) (予定) 第7回: Spring Framework 5.0 Kotlinサポート (予定) 動作検証バージョン Spring
今回は「Spring Framework 5.0 主な変更点」シリーズの第4回で、WebMVC関連の主な変更点(新機能や改善点など)を紹介していきたいと思います。 シリーズ 第1回: Spring Framework 5.0 主な変更点の概要 第2回: Spring Framework 5.0 コア機能の主な変更点 第3回: Spring Framework 5.0 DIコンテナ関連の主な変更点 第4回: Spring Framework 5.0 WebMVC関連の主な変更点 第5回: Spring Framework 5.0 Test関連の主な変更点 第6回: Spring Framework 5.0 WebFlux(Reactive Web Framework) (予定) 第7回: Spring Framework 5.0 Kotlinサポート (予定) 動作検証バージョン ベースライ
今回から数回(全7回を予定)にわけて、2017/7月リリース予定で2017/5/8にRC1がリリースされたSpring Framework 5.0の主な変更点(新機能や改善点など)を紹介していきたいと思います。 本エントリーは「New Features and Enhancements in Spring Framework 5.0」で紹介されている内容を、サンプルコードなどを交えて具体的に説明していく予定です。(逆にいうと、「New Features and Enhancements in Spring Framework 5.0」にのっていない変更点は紹介しないので、あしからず・・・ ) なお、初回である今回は簡単な概要説明(日本語化+α)にとどめておき、次回から具体的な説明を行っていきます。 トピック 本エントリーでは、Spring Framework 5.0の主な変更点を以下の8つ
Selenide(fastSetValue=true)でSeleniumのフォーム入力を高速化できる!?JavaSeleniumSelenide 今回は、Seleniumのフォーム入力を高速化する方法を紹介します。 Seleniumを使ってフォーム入力を行なう場合は、通常はWebElementのclearやsendKeysメソッドを使いますが、入力文字数に比例して入力速度が遅くなる傾向があります。少ない文字数だと入力速度が遅くなることを体感するのは難しいですが、テキストエリアなどに大量の文字を入力すると、入力速度が遅くなることを体感することができます。 一般的なフォーム入力の方法 Seleniumでの一般的なフォーム入力の方法は、以下のような感じです。
2017年4月10日のリリースされた1.3の変更点をまとめました。 なお、 mybatis-spring-boot-starterの使い方については、こちら(バージョン1.3対応済) mybatis-spring-boot-starter 1.1から1.2の変更点については、こちら mybatis-spring-boot-starter 1.0から1.1の変更点については、こちら をご覧下さい。 Note: 2017/8/21: 追記 バージョン1.3.1の変更点を追加しました。 2019/5/7: 追記 バージョン1.3.2, 1.3.3, 1.3.4の変更点を反映しました。 依存ライブラリの必須バージョン バージョン1.3を使う場合は、以下のバージョンが必須になります。 MyBatis 3.4+ Mybatis-Spring 1.3+ Spring Boot 1.5+ Spring B
今回は、「Spring Security OAuthで認可コードグラントフローを体感しよう」の第二回で、ま〜とりあえずSpring Security OAuth + Spring Bootを使用して認可コードグラントフローでREST APIの認証・認可を行うアプリ作ってみることにします。 第1回:OAuth 2.0のおさらい編 アプリケーションの機能要件 今回作成するアプリケーションの機能要件は・・・ Service Provider Service Providerは、ユーザ単位でタスク情報(タイトル、詳細、期限日、完了フラグ、登録日時、更新日時)の管理(登録・更新・削除・参照)を行うREST APIを提供し、REST APIへのアクセスは、OAuth 2.0の認可コードグラントフローで発行したアクセストークンを使用して認証・認可を行う。 という要件にします。 本来であればService
JDK 8で追加された「-parameters」コンパイルオプションの指定方法(Maven, IntelliJ, Spring Tool Suite=Eclipse)JavaMavenEclipseIntelliJSTS 今回は、JDK 8で追加された「-parameters」コンパイルオプションを、Maven(Maven Compiler Plugin)、IntelliJ IDEA, Spring Tool Suite(=Eclipse)で指定する方法を紹介します。 動作環境 $ ./mvnw -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00) Maven home: /Users/xxx/.m2/wrapper/dists/apache-maven-3.3
Spring Security OAuthで認可コードグラントフローを体感しよう -第1回:OAuth 2.0のおさらい編JavaOAuthspringSpringBoot 今回から数回(たぶん3〜5回位)にわけて、Spring Security OAuth(+Spring Boot)を利用してOAuth 2.0の認可コードグラントフローを利用したREST APIの認証・認可を実現する方法を説明します。といいつつ・・・わたしもOAuth 2.0に詳しいわけではないので・・・間違った説明があるかもしれません(悪しからず・・・) 間違った説明があったら是非コメント(修正リクエスト)をお願いします!! で、第1回の今回は・・・OAuth 2.0ってなんだっけ(=おさらい)をざっくり説明していきたいと思います。ちなみに・・・今回はSpring Security OAuthとSpring Bootの
SpringのAbstractRoutingDataSourceを使ってシャーディングっぽいことをしてみる!JavaspringSpringBoot 今回は、Springが提供しているAbstractRoutingDataSource + Spring AOPを利用して、アプリケーションレイヤでシャーディングっぽいことを実現する方法を紹介します。 シャーディングはデータを複数のサーバに(透過的に?)分散させる機能のことで、負荷分散による性能向上やリソース分散によるコストパフォーマンス向上などを目的に使います。本エントリーではアプリケーションレイヤでシャーディングっぽいことを実現する方法を紹介しますが、RDBMS、NoSQL、KVSなど自体にシャーディング機能をもっていることも多いため、まずはインフラストラクチャレイヤでシャーディングを実現する方法を検討する方がよいと思います!! 動作検証バ
先ほど「SpringのDBコネクションの共有方法(DBトランザクション)を理解する」を投稿しましたが、3rdパーティ製のDBアクセスライブラリ(Domaとか)やオレオレJDBCフレームワークをSpringのトランザクション管理下で実行する方法も紹介しておきましょう。 動作検証バージョン Spring Boot 1.5.1.RELEASE Spring Framework 4.3.6.RELEASE オレオレDBアクセス機能を使ったSQLの実行 まず、DataSourceから取得したConnectionを使ってSQLを実行するオレオレDBアクセス機能を実装します。 package com.example; import java.sql.*; import java.util.LinkedHashMap; import java.util.Map; import java.util.Prop
今回は、SpringのDBコネクションの共有方法(=複数のSQLを同一トランザクション内で実行する方法)の仕組みについて説明します。 仕組みだけ説明をするとSpringに詳しくない人に対してハードルが高くなる!?気がするので・・・Spring提供のDBアクセス機能(JdbcTemplate)を実際に使いながら、SpringがDBコネクションをどうやって生成・共有するのか説明していきたいと思います。 動作検証バージョン Spring Boot 1.5.1.RELEASE Spring Framework 4.3.6.RELEASE 検証用のSpring Bootプロジェクトの作成 まず、検証用のSpring Bootプロジェクト作成しましょう(Dependencieにはjdbcとh2を指定)。ここではコマンドラインでプロジェクトを作成する例になっていますが、SPRING INITIALIZR
今回は、Spring Framework 4.3の変更点紹介シリーズの第3回で、キャッシュ関連の変更点を紹介します。 シリーズ 第1回:Spring 4.3 DIコンテナ関連の主な変更点 第2回:Spring 4.3 データアクセス関連の主な変更点 第4回:Spring 4.3 JMS関連の主な変更点 第5回:Spring 4.3 Web関連の主な変更点 第6回:Spring 4.3 WebSocket関連の主な変更点 第7回(最終回):Spring 4.3 テスト関連の主な変更点 動作検証環境 Spring Framework 4.3.0.RELEASE Spring Boot 1.4.0.BUILD-SNAPSHOT (2016/6/11時点) Caching Improvements 今回は、キャッシュ関連(@Cacheable)の主な変更点をみていきます。 マルチスレッド下での同時
直近の5年間・・・Spring Frameworkにどっぷり浸かった生活をしていたのですが、先日ソースコードレビューをしている時に初めて@AutowiredにBy Nameによるfallbackの仕組みがあったことを知りました・・・ Note: @Autowiredは、By Type(型の一致)によってインジェクション対象のBeanを解決することを指示するためのアノテーションで、同じ型のBeanが複数存在すると、どのBeanをインジェクションしてよいか判断できずエラーになります(@Primary、@Order、@Priorityが付与されたBeanがいると、そいつがインジェクションされる仕組みはありますが・・・)。 上記の説明は概ね間違ってはいないのですが、インジェクション候補が複数見つかった場合に、インジェクションするBeanをBy Nameで絞り込む仕組みがあったのです・・・・(いや〜
次のページ
このページを最初にブックマークしてみませんか?
『@kazuki43zooのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く