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

6年目のSIerのブログです

Java

RXJava 無限ストリームでdistinct使ったらどうなる?

以下のサイトに移行しました。 https://qiita.com/kimullaa/items/d168cdbde95c7439cafc

MyBatis 利用時に SQL で FULL OUTER JOIN するときの注意点

以下のサイトに移行しました。 https://qiita.com/kimullaa/items/f069be25b7d9263d8d49

Tomcatのリソース設定(maxThreads,maxConnections,acceptCount)の違い

以下のサイトに移行しました。 https://qiita.com/kimullaa/items/9fc39bf4d85488bf5362

Spring Securityで特定ヘッダーがついてるときだけ認証をパスさせる方法

以下、Basic認証を例に取り上げる。 何をしたいか? アプリケーションに認証をかける。 $ curl -i -u 'user:pass' localhost:8080/api/sample HTTP/1.1 200 X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Cache-Control: no-cache, no-s…

なぜ Spring Boot は Tomcat のログをアプリケーションから管理できるのか

以下のサイトに移行しました。 https://qiita.com/kimullaa/items/fb2d46c50e95550ba0d1

Javaのビルドの基礎知識

Javaのビルド関連の知識については、Java学習初期にこんなコード書いて終わり、あとは便利なビルドツール(mavenやらgradle)に任せようって感じで知識が薄かった。 $ cat Sample.java public class Sample { public static void main(String[] args) { System…

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

以下のサイトに移行しました。 https://qiita.com/kimullaa/items/59546ea68681673bd7e9

「mvn clean test」みたいに実行するコマンドと「mvn checkstyle:checkstyle」みたいに実行するコマンドとの差を理解したい

以下のサイトに移行しました。 https://qiita.com/kimullaa/items/550bf6f044c788462524

SpringのContextHolderいろいろ

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

ブロッキングとかノンブロッキングを理解したい

Spring Framework5では「Reactive」対応が目玉だと言われているが、そもそもその前段のブロッキングやノンブロッキングというのが何なのか、いまいちしっくりこなかったので基本から調べた。(今回は特にネットワーク部分に絞って調べた)また、tomcatの実装で…

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

以下のサイトに移行しました。 https://qiita.com/kimullaa/items/55733cd88fd0ad47d038

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

以下のサイトに移行しました。 https://qiita.com/kimullaa/items/c374b11cc11ff614c414

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 権限に基づいて認可処理をする

以下のサイトに移行しました。 https://qiita.com/kimullaa/items/f2f8db64bfd374719580

SpringのAOP @Pointcutの使いどころ

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

SpringSecurityでEL式を拡張してカスタムルールを作るときのメモ

SpringSecurityでカスタムルールを作る SpringSecurityで提供されているEL式(hasRole()とか)で足りなくなった場合に、独自のEL式を作成する方法のメモ。前の記事で作成してたプロジェクトからちょっとカスタマイズして作成。 kimulla.hatenablog.com カスタ…

SpringCloudBusで簡単にConfigの更新をアプリにブロードキャストする

以下のエントリの続き。 kimulla.hatenablog.com SpringCloudBusとは? メッセージングサービス(AMQP)を利用して、アプリケーション内に色々な情報をブロードキャストするためのプロダクト。 具体例 SpringCloudConfigを利用しているときを例にとって説明する…

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

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

HttpServletRequest を拡張して独自HttpSessionを登録する

SpringSessionのリファレンスを見てると、「SpringSessionはHttpServletRequestを拡張して実現していますよ」的なことが記載されていた。Spring Session Fortunately both HttpSession and HttpServletRequest (the API for obtaining an HttpSession) are b…

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は以下のような複数のプロジェクト(抜粋)から構成されていて、このプロジェクトのひと…