SIerだけど技術やりたいブログ

5年目のSIerのブログです

Spring

Spring 抽象クラスに定義したアノテーションは引き継がれるのか

以下のコードの実行結果からわかるように、引き継がれる。はい終わり! @EnableAsync //非同期処理を有効化する @SpringBootApplication public class InheritApplication { public static void main(String[] args) { new SpringApplicationBuilder(Inherit…

Spring 非同期タスクの同時実行数を制限する方法

Springには非同期処理を実行するための@Asyncアノテーションがある。 34. Task Execution and Scheduling kimulla.hatenablog.com この非同期タスクの同時実行数を絞るための方法をメモる。デフォルトだと非同期処理の実行にSimpleAsyncTaskExecutorが使われ…

SpringのContextHolderいろいろ

Springには、…ContextHolderというクラスがある。スレッドローカルに値を保存しておくことで、情報をいろんなところから参照できるようにする。スレッドローカルは…まあスレッド固有の値ですよね。(あたりまえ)TomcatなどのAPサーバはリクエストごとにwork…

Springの@RequestScopeや@SessionScopeは結局どこに保存されるのか?我々は真相に迫った

ある日の出来事 我々は真相に迫った まずはデバッグ Javadocを読んでみる 結論 追加 ある日の出来事 SpringのBeanのスコープ、便利ですよね。ライフサイクル管理を任せられるのはDIコンテナを利用するメリットの大きなところだと思います。いつもは何も考え…

Springの@Asyncで非同期処理をする

この記事の内容 DataSourceTransactionManagerはスレッドごとにTx管理するので、@Async使うときは気をつけよう。 この記事の内容 @Asyncアノテーション サンプルコード スレッド生成ルールのカスタマイズ WEBシステムで使うときの疑問点 検証の題材 ソースコ…

Spring Framework で同一アプリ内でのイベントを扱う(ApplicationEvent、EventPublisher)

なぜイベントを使うのか デフォルトで提供されているイベント Listenerの実装方法 ApplicationListenerを実装する方法(~spring4.1) @Eventlistenerアノテーションを使う方法(spring4.2~) カスタムイベントの実装方法 サンプルアプリの題材説明 Application…

Spring管理外のクラスでSpringのBeanを使う

Spring管理外のクラスでSpringのBeanを使う Spring管理外のクラスでSpringのBeanを使いたい場面がある。 そもそも自分でnewすればいいだけでは?という場面もあるけど、@ProfileでどんなBeanが来るのか実行時までわからない、とか複雑な初期化あるとかいう前…

Spring REST Docs でAPIドキュメントを作成する

この記事の内容 Spring REST Docsを利用すれば、テストコードから以下のようなAPIドキュメントを作成できるようになる。 この記事の内容 Spring REST Docs とは サンプル 使い方 mavenのpom.xmlにversionを指定する Asciidoctorでasciidocからhtmlを生成する…

SpringBoot @Valueで任意の型にセットする CustomPropertyEditorの作成

はじめに Springには外部定義から値を読み込んで、Javaのフィールドにセットする機能がある。application.propertiesにメッセージを記述し、 message=helloJavaクラスで利用すると、 @Service public MessageServiceImpl implements MessageService { @Value…

SpringMVC 複数のフォームを送信する方法

よくやり方忘れるのでメモ。 こんな画面をSpringMVCで作りたい familyNameとgivenNameが1つのFormで、それを複数繰り返す。 実装方法(サーバ側) Controllerクラスの引数に受け取るFormを用意する 本筋と外れるけど、入力値チェックも設定する。 @Data @AllAr…

SpringSecurity 権限に基づいて認可処理をする

この記事の内容 SpringSecurityを理解すればこんな感じの、権限に基づいた制御を簡単に実現できる。 概要 SpringSecurityのサンプルでは、ROLEに基づいて認可してることが多い。 @Override protected void configure(HttpSecurity httpSecurity) throws Exce…

SpringのAOP @Pointcutの使いどころ

SpringのAOP @Pointcutの使いどころ SpringのAOPのアノテーションで、@Pointcutだけ使い方がよくわからなかったのでメモ。 SpringのAOPってなに? 具体的な処理と関係のない処理(ロギングとか)が混じっていると、煩雑になって保守性が下がる。なので、具体的…

簡単 Spring SessionでKVSを用いたセッションストア

そもそもセッションってなに? Spring Sessionってなに? どんな動き? 実装方法 Redisの準備 アプリケーションコード HttpSessionを利用する側 動作確認する サンプル まとめ 参考にしたサイト そもそもセッションってなに? セッションはAPサーバ固有のデータ…

Spring Cloud Configのリファレンス読んだ

Spring Cloud Configとは 何がいいの? サンプル書いた 実装方法 Configサーバ Configクライアント クライアントから見たときのファイル名とアプリの関連性は? 設定変更の反映 でも全部のConfigクライアントに/refreshなんてしたくない 参考にしたサイト Spr…

SpringSecurityでFORM認証

SpringSecurityとは springプロダクトのひとつ。 認証認可の機能を提供してくれる。 認証(アクセスしてきたのは誰か?) BASIC認証、DIGEST認証、LDAP、FORM認証、openID認証など、色々サポート 認可(そのユーザが何をできるか?) デフォルトはROLEベースの制…

SpringBootでHelloWorld

最近の流行りに乗っかれていないので、SpringBootを試してみる。 そもそもSpringBootとは JavaEEと並んでメジャーなフレームワークに『Spring』というものがある。 Springは以下のような複数のプロジェクト(抜粋)から構成されていて、このプロジェクトのひと…