タグ

ブックマーク / kazuhira-r.hatenablog.com (15)

  • Spring Boot(JobLauncherApplicationRunner) × Spring BatchとJobParametersIncrementerの動作を確認してみる(+JsrJobParametersConverter) - CLOVER🍀

    これは、なにをしたくて書いたもの? Spring BootとSpring Batchを合わせて使っている時の、JobParametersIncrementerの立ち位置がちょっと気になりまして。 JobParametersIncrementer JobParametersIncrementerについては、こちらに書かれています。 Configuring and Running a Job / Advanced Meta-Data Usage / JobParametersIncrementer JobOperatorと関連して説明があり、JobOperator#startNextInstanceメソッドは常に新しいJobインスタンスを開始することが 書かれています。 the startNextInstance method is worth noting. This method will

    Spring Boot(JobLauncherApplicationRunner) × Spring BatchとJobParametersIncrementerの動作を確認してみる(+JsrJobParametersConverter) - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2022/05/11
    自分はSpring Batchを全然わかっていなかったという事実を突きつけられている。数年後に救われる人が続出しそう。
  • Spring Batchで、Bean ValidationとItemのスキップの動作を確認する - CLOVER🍀

    これは、なにをしたくて書いたもの? Spring BatchとBean Validationを組み合わせて、Itemのバリデーションをしたり、NGになったItemをスキップできたりするというので ちょっと試してみようかなと。 Spring BatchとBean Validation Spring BatchでBean Validationが使えることはドキュメントに書かれているわけですが、ItemProcessorの用途のひとつとして登場します。 Item processing / Validating Input BeanValidatingItemProcessorというItemProcessorが提供されているので、こちらを使って実現するようですね。 BeanValidatingItemProcessor (Spring Batch 4.3.5 API) Springのバリデーション

    Spring Batchで、Bean ValidationとItemのスキップの動作を確認する - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2022/04/28
    これは数年後に救われる人が続出しそう。skipできる回数を無制限にしたいよなー。想定する件数を見て、ありえない数字を入れればよいのかなー。
  • Springの各プロジェクトに、サポート期間が掲載されるようになっていたという話 - CLOVER🍀

    いつからかわかりませんが、Springの各プロジェクトのにサポート期間がわかりやすく掲載されるようになっていたという話です。 たとえば、Spring Frameworkを例にしてみます。プロジェクトのトップページにある、「SUPPORT」を選択してみます。 すると、「リリース日」、「OSSサポート」、「商用サポート」、「将来のリリース」のそれぞれの日付が表示され、グラフも描画されます。 「OSSサポート」はSpringコミュニティによる、無償でのセキュリティアップデートおよびバグフィックスが行われる期間ですね。 「商用サポート」はOSS版のEOL後も続く、有償のサポートです。 「将来のリリース」は、まだ未リリースのバージョンです。 「OSSサポート」の詳細はこちら、 VMware Tanzu OSS Support | Support | VMware Tanzu 「商用サポート」の詳細は

    Springの各プロジェクトに、サポート期間が掲載されるようになっていたという話 - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2022/04/04
    ちょっと前まではwikiしか手がかりが無かったので、わかりやすくなってて有難い。
  • Apache Tomcatをフォアグラウンドで起動する - CLOVER🍀

    これは、なにをしたくて書いたもの? Apache Tomcatをフォアグラウンドで起動する方法について、ちょっとメモしておこうかなと。 Dockerコンテナやsystemdのサービスとして起動する時に、知っておくと便利そうですよね。 前に書いたエントリーで触れたことがあったのですが、その時は別のテーマにフォーカスしたので、独立して、と。 結論を書くと、catalina.sh runで実行すればOKです。 環境 今回の環境は、こちら。 $ java --version openjdk 17.0.2 2022-01-18 OpenJDK Runtime Environment (build 17.0.2+8-Ubuntu-120.04) OpenJDK 64-Bit Server VM (build 17.0.2+8-Ubuntu-120.04, mixed mode, sharing) 使用

    Apache Tomcatをフォアグラウンドで起動する - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2022/03/16
    フォアグラウンドで動かすのとバックグラウンドで動かすのとで何が違うんだろう?
  • Javaプログラマ向け高階関数紹介 - CLOVER🍀

    Javaプログラマ向けに、高階関数のお話でも。 高階関数とは、「関数を引数に取る関数」のことです。来は「関数を返す関数」(カリー化)も含むそうですが、高階関数というと専らこの意味で使われることが多いので問題ないでしょう。 Javaでは、メソッドとかの引数の最小単位はクラス(のインスタンス)もしくはプリミティブなので、他の言語で登場する関数渡しとかクロージャーとかは、Javaしか知らないプログラマからすると、相当疎遠な存在ではないかと思います。 自分も、Scalaを勉強するまではそんな感じでした。そして、Scalaを知ってからちょっとした衝撃を受けたわけですが。 今回は、PythonJavaを対比して紹介したいと思います。リストの反復処理(foreach)と、リストから新しいリストを生成する処理、写像(map)の例でいきます。 まずは、Pythonコードから。まずは、原型となる関数、my

    Javaプログラマ向け高階関数紹介 - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2021/07/02
    2021年版を待ってる。
  • ブログを書き始めてから、10年経ちました - CLOVER🍀

    なんと このブログですが、書き始めてから10年経っていたようです。 最初に書いたのは2011年5月14日で、「今日から開設。」とまったくやる気がなさそうな1目から始まっているのですが。 続けて10年経ったということに、今年になって「どれくらい続けてるの?」と聞かれて気づいてしまいました。 たぶん、聞かれてなかったら気づいてないですね。 このブログでは、実際の自分の勉強の記録以外ほとんど書いてきていないのですが、こういう区切りっぽい年くらい たまにはいいかなぁということで。 振り返りを兼ねて、つらつらと書いてみましょう。自分が「どうしてだっけ?」というのを考えながら書いています。 もう数年経った時に、自分で見返したらどう思うでしょうね? ブログを始めた理由 自分の勉強のために始めました。 当時、を読んだり、やWebを見ながらコードを書いていても、どうも身につかないことに悩んでいて。 文

    ブログを書き始めてから、10年経ちました - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2021/06/04
    いつも大変お世話になっております。ありがとうございます。
  • Jacksonで、入力として型変換できない値を渡したら? - CLOVER🍀

    これは、なにをしたくて書いたもの? JSONの読み書きにはJacksonをよく使いますが、マッピング先のクラスのプロパティに、そのまま設定できない値を指定した場合 (たとえば数字ではない文字列をintのフィールドに設定しようとする)、どうなるんだっけ?というのをメモしておこうと。 結果は予想できるのですが、「そうだったよね?」的な気分になるので。 対象は、JSONとCSVでやってみます。 環境 今回の環境は、こちら。 $ java --version openjdk 11.0.11 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04) OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode,

    Jacksonで、入力として型変換できない値を渡したら? - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2021/05/28
    お仕事で使いそうなのでメモブクマ
  • 自身のグローバルIPアドレスをコマンドラインで確認する - CLOVER🍀

    コマンドラインで、自身のグローバルIPアドレスを調べる方法をメモしておきたいな、と。 こちらで。 $ curl https://ifconfig.me aaa.bbb.ccc.ddd 余談ですが、HTTPでも見れます。 $ curl ifconfig.me ブラウザでアクセスすると、より詳細な情報が見れたり。 What Is My IP Address? - ifconfig.me 姉妹サイト。さらに詳しくなります。 Comprehensive IP address data, IP geolocation API and database - IPinfo.io こちらのサイトでも同じことができます。 $ curl https://ifconfig.co ## IPv6 $ curl -4 https://ifconfig.co xxx.xxx.xxx.xxx ## IPv4 やっぱり、

    自身のグローバルIPアドレスをコマンドラインで確認する - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2021/05/14
    知らなかったー。どこが運営しているサイトなんだろう。
  • Spring Boot/Spring Frameworkで、プロパティファイルを読み込む(JavaConfig) - CLOVER🍀

    これは、なにをしたくて書いたもの? Spring Frameworkで、プロパティファイルをJavaConfigにマッピングする場合、あとProfileも含めて…という時は どうするんだっけ?というのをよく忘れるので。 メモしておこうかなと。 Spring Frameworkで、プロパティファイルを扱う Spring Bootでこう言うと、まず真っ先に挙がるのはapplication.propertiesだと思います。 Externalized Configuration 自分で用意するプロパティファイルを扱う場合は、どうするのでしょう? あと、Profileについても。 環境に応じて設定値を変更する場合は環境変数で、という話にしたいところかなとは思いますが、これはこれで押さえて おきたい内容ではあるので今回扱おうと思います。 @PropertySource 自分で用意したプロパティファイ

    Spring Boot/Spring Frameworkで、プロパティファイルを読み込む(JavaConfig) - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2021/05/12
    これは有益なメモ!
  • Spring FrameworkのJDBC接続とスレッド(TaskExecutor利用)の関係を確認してみる - CLOVER🍀

    これは、なにをしたくて書いたもの? Spring FrameworkのJDBC接続(Connection)は、スレッドに紐付けられて管理されていたはずなので。 ここで、タスク実行の仕組みを使い、別スレッド内でデータベースアクセスを行った場合はConnectionが別になるのかなと。 そんな気はしますが、試してみよう、ということで。 SpringにおけるJDBC接続とスレッド DataSourceTransactionManagerの説明に、記述があります。 The DataSourceTransactionManager class is a PlatformTransactionManager implementation for single JDBC datasources. It binds a JDBC connection from the specified data sou

    Spring FrameworkのJDBC接続とスレッド(TaskExecutor利用)の関係を確認してみる - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2021/04/28
    こういう検証ブログって大事。かずひらパイセン、ありがとうございます。かずひらパイセンの後ろをひたすらついていきます。
  • OpenJDKのソースコードリポジトリは、どれを見ればいい? - CLOVER🍀

    これは、なにをしたくて書いたもの? 自分の使い方というと、最新のJavaや開発中のJavaの情報を追うというよりも、リリースされてから(今のご時世だとLTS) ちょっと間を空けて使い始めることが多いです。 で、以前はOpenJDKのソースリポジトリを見ることはそんなになかったのですが、勉強している時にたまに見たり、 エントリを書く時にソースコードへリンクをつけるようなこともたまにするようになりました。 OpenJDK 今までソースコードをまったく見ていなかったということはないのですが、JDKに含まれているsrc.zipを 見ていた感じですね。 OpenJDKのソースリポジトリがGitHubに移ったというのも、やりやすくなったなぁと。 OpenJDKのソースコード、GitHubへの移行を完了 - Publickey GitHub - openjdk/jdk: JDK main-line de

    OpenJDKのソースコードリポジトリは、どれを見ればいい? - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2020/12/28
    マイナーアップデートの時に細かいバージョン毎のソースを見るにはどこを見るのか、という話ではなかった。勘違いしてしまった。
  • Maven Wrapper(mvnw)を使って、Maven未インストール環境でもMavenを使えるようにする - CLOVER🍀

    使われているのはけっこう見てきているのですが、いい加減に自分でも使ってみようかと思い、Maven Wrapperを試して みることにしました。 Maven Wrapperは、Gradle Wrapperにインスパイアされたものらしいです。 第62章 Gradleラッパー Gradle Wrapperなら「gradlew」、Maven Wrapperなら「mvnw」というスクリプトを使用して、それぞれGradle、Mavenを自動的にダウンロードしてきて 各ビルドができるためにするものです。 これを使うと、各開発者の環境にMavenやGradleをインストールしておく必要がなくなります(スクリプトでダウンロードする)。 まあ、ふだんはMavenをインストールしている環境にいるので、あんまり気にしたことはなかったのですが、1度は試しておこうかなぁと。 Maven Wrapper Maven W

    Maven Wrapper(mvnw)を使って、Maven未インストール環境でもMavenを使えるようにする - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2020/12/14
    久しぶりにくろうばぁ様のブログに仕事で追突したので記念ブクマ
  • Java 11のガベージ・コレクション・チューニングガイドを読む - CLOVER🍀

    Java 8以降になってAPIドキュメント以外をあまり見ていなかったのですが、いろんなドキュメントが見やすくなって いるんだなぁと。 JDK 11ドキュメント - ホーム で、こちらのドキュメントがちょっと気になりまして。 ガベージ・コレクションのチューニングの概要 Java 8の頃に比べると、だいぶ差が。 Java Platform, Standard Edition HotSpot Virtual Machineガベージ・コレクション・チューニング・ガイド, リリース8 どうしてこのあたりを見ているかというと、Java 9以降でデフォルトになったG1GCですがどれくらいのヒープサイズ以上が 目安なのか、どこかに書いてあったかなぁということで探してみたと。 書いてありました。 最大10GBまたはそれ以上のヒープ・サイズ(Javaヒープの50%超がライブ・データで占められている)。 ガベー

    Java 11のガベージ・コレクション・チューニングガイドを読む - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2020/10/15
    支援ブクマ
  • Bean Validationで、既存のアノテーションをまとめるアノテーションを作成する - CLOVER🍀

    このあたりを見て、こんなことができるんだなーと知りまして。 はじめてのBean Validation その2 http://d.hatena.ne.jp/shin/20100113/p1 5.5.3.1. 既存ルールを組み合わせたBean Validationアノテーションの作成 https://terasolunaorg.github.io/guideline/public_review/ArchitectureInDetail/Validation.html#id10 Validatorを作成する際に、完全に新しく作成するのではなく、すでに存在するアノテーションを組み合わせるだけで実現できるものについては、組み合わせるアノテーションをまとめるアノテーションを作成すればよい、という話みたいです。 試してみます。 準備 ビルド定義。 build.sbt name := "bean-vali

    Bean Validationで、既存のアノテーションをまとめるアノテーションを作成する - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2019/05/21
    今日もかずひらヒーローが4年前に既に通った道にたどり着いたのでブックマーク。
  • Mavenでプロジェクトの依存関係を解析する - CLOVER🍀

    できるできるとは聞いたことがありましたが、実際にコマンドを打ったことがなかったので試してみました。 dependency:tree http://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html 例えば、こんなpom.xmlを用意します。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    Mavenでプロジェクトの依存関係を解析する - CLOVER🍀
    su_zu_ki_1010
    su_zu_ki_1010 2017/08/18
    見つけたのでコマンドを打ってみたら、最初にpom.xmlのダウンロードが大量に動いた。
  • 1