Java

Java で JWT の利用

JSON Web Tokens - jwt.io を Java で利用する。 利用環境、pom.xml Maven <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.11.0</version> </dependency> JWTの生成 // 有効期間 3分 int minutes = 3; // 秘密鍵 String secret = "123abc"; // 期間設定の為の計算 LocalDateTime nowtime = LocalDateTime.no…

Python でCSVを読む時の注意

Python では、CSVを読む時、カンマ区切りの後に空白があると読込んだ後に列がズレたり、 (最終列の前のカンマの後に空白が存在して最終列がダブルクォートで括って改行が含まれていると、 次の行と一緒に列の認識が崩れる!) 想定しない障害になります…

YAML から特定パスを指定した値の抽出

Spring や SpringBoot を使わない環境で、YAML からパスを指定した値の抽出です。 非Spring、非SpringBoot 環境で、YAMLを読む - Oboe吹きプログラマの黙示録 の応用です。 snakeyaml を使用します。 ・パスは "." 区切りで並べます。 ・配列の一部を抽出す…

snakeyaml で出力する先頭の !! について

snakeyaml で、オブジェクトからYAMLを作る - Oboe吹きプログラマの黙示録 で書いたとおり、snakeyaml がダンプする YAML は、 "!!" + 変換対象クラス名か、"!!yaml" が先頭についてしまいます。YAML書式ではコメントは、'#' で始めてコメント行にするはずで…

snakeyaml で、オブジェクトからYAMLを作る

非Spring、非SpringBoot 環境で、YAMLを読む - Oboe吹きプログラマの黙示録 を書いたので、今度はJava オブジェクトから、YAML テキストを snakeyaml で出力します。 Yaml yaml = new Yaml(); 基本、Yamlインスタンス作って、dumpメソッドで出力するのですが…

非Spring、非SpringBoot 環境で、YAMLを読む

Spring や SpringBoot を使わない環境で YAML を読込むのにどうしようという課題で、 snakeyaml を使うのが簡単です。 ( SpringBoot も結局は、snakeyaml を使っているので、Speing起動時のあの重たい起動の一部で、YAML読込みで使用されているので 安心し…

リストからユニーク要素を抽出する

リストから重複要素を抽出する。 - Oboe吹きプログラマの黙示録 を書いたので、 自然に次は、リストからユニークな要素=重複していない要素を抽出したリストを Collector として生成するのは、以下になります。 public static <T> Collector<T, ?, List<T>> uniquedList(){ M</t,></t>…

リストから重複要素を抽出する。

リスト、またはストリームから重複した要素だけを抽出してリストにしたい場合、 equals 、hashCode が正しく実装されていることが前提だが、 直感的かもしれないが、以下のように Collectors.groupingBy で取得できる。リストでもStreamを取得できるので、St…

equals メソッドと hashCode メソッドが override されたかを調べる。

あるクラスが、java.lang.Object の equals メソッドと hashCode メソッドを override して定義しているかを調べる。equals を override しているかを調べるメソッド public static boolean isEqualsOverride(Class cls){ try{ Method equalsMethod = cls.ge…

SpringBoot HikariCP の コンフィグレーション

以下を書いたが、、 oboe2uran.hatenablog.comHikariCP を意識すると、、 import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import com.zaxxer.hikari.HikariDataSource; im…

SpringBoot mybatis の コンフィグレーション

今更、ではあるがメモ。 SpringBoot Ver 2.3.1 mybatis-spring-boot-starter は、Ver 2.1.3コードの読みやすさの為に、lombok を使うことにして、 build.gradle の設定は、、 dependencies { implementation 'org.springframework.boot:spring-boot-starter-…

重複存在すれば true を返すCollectors

以前、リストの重複チェックとして、 oboe2uran.hatenablog.com を書きました。ここに書いたのは、全てユニークだったら true であり Booleam#logicalAnd を利用したものでした。では、重複だったら true を返すCollectors にしたい場合は、、 logicalXor を…

System.out を close したと騙して再利用する。

try-with-resources 文で、PrintWriter pw = new PrintWriter(System.out) を書いて、 try-with-resources文の finally を実行した後ろで、System.out.print を実行しても 既に close しているのだから、print / println は機能しない。でも、再度、System.o…

Generate a JSON schema using Jython !?

JSON schema の Draft 7 JSON Schema Draft-07 Release Notes | JSON Schema に沿ったバリデータを探していて、 JSON schema を生成するのに、Python でというのは、よくあるアーキテクトと思うが、、 今更、Jython ?。。。天下のOracle のページで目にした…

YAML 配列を読込む場合のルール

昨日書いた YAML に追加で、、、 https://oboe2uran.hatenablog.com/entry/2020/07/24/124904 以下のように、clist キーに配列がある場合、 address: group: info1: A info2: 120 clist: - 21 - 22 - 23 aaa: bbb: ABC この clist を読むための List を、@Va…

JUnit で、YAML を読む処理をテストする時、@EnableAutoConfiguration を忘れずに!

YAML を読む処理を JUnit テストする時、( Spring Batch での話 ) @ContextConfiguration で、イニシャライザ指定 initializers = ConfigFileApplicationContextInitializer.class を付けるだけでなく、 @EnableAutoConfiguration が必要 例) application…

mybatis + HikariCP

コネクションPOOL に HikariCP を使用した mybatis の接続 【再興】mybatis XML設定を使わない場合 - Oboe吹きプログラマの黙示録 のパターンで書いてみる。HikariCP 3.4.5 <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.5</version> </dependency> mysql-connector-java 8.0.21 <dependency> <groupId>mysql</groupId> </dependency>

【再興】mybatis XML設定を使わない場合

過去に、 mybatis XML設定を使わない場合 - Oboe吹きプログラマの黙示録mybatis xml設定ファイル使わない場合の補足 - Oboe吹きプログラマの黙示録と書いたが、SQLMap の XML も書かないで、SQL文もアノテーションで済ませたい。mybatis 3.5.2 mysql-connect…

【再考】escape がある区切り文字による split

先日書いた、 oboe2uran.hatenablog.comこれでは、ダメだ エスケープする文字列が残らない。 だいたい java.util.StringTokenizer なんて古いものは、すでに奨励されていない。 char 型で処理する public static List<String> tokenToList(String str, char sep, cha</string>…

escape がある区切り文字による split

String の split(String regex) は、頻繁に良く使われるメジャーなメソッドである。 でも、区切り文字(デリミタ)に対してエスケープがあり、エスケープ文字を考慮して split でリストを求めたい。 サンプル文字列 「$.aaa.\.bb\.bbb.cc\.\.c.\.\ddd\..ee\\…

無限Stream を limit でなく別の方法で STOP させる。

limit を使わずに Stream 止め方には、トリッキーではあるが、 filter(Predicate) 、findAny() で止めるか、anyMatch(Predicate) で、止める方法がある。 Stream.iterate(1, i->i+1) .peek(System.out::println) .filter(n->n > 9) .findAny(); これの findA…

double の値が、整数か小数点有りか調べる

Java で案外、これを問われると簡単なようですぐに出てこない。 結果、boolean 値とする。 文字列にして小数点(.)文字を検証する方法 double d = 13.02; boolean flg = Long.parseLong(String.valueOf(d).substring(String.valueOf(d).indexOf('.')+1))==0…

Big JSON を読み込みを汎用化

先日の「Big JSON を読み込む JsonReader の実践」より汎用化を考えました。。 以下、抜粋のコードです。 public void execute(JsonReader reader, Consumer<T> consumer){ boolean request = false; try{ while((reader.hasNext() || reader.peek().equals(Jso</t>…

Big JSON を読み込む JsonReader の実践

先日書いた「Big JSON を読み込む JsonReader」、 より実践的なサンプルを書いてみる。 JSON素材 { "category": "JsonReader テスト", "filename": "sample.json", "itemlist":[ { "name": "A", "flag": true, "time": "2020/06/05 22:14:25" }, { "name": "…

置換表、正規表現マッチ replace

前持って置換文字列の表を用意しておいて、正規表現で見つけて置換する処理を無駄なく 処理できるものがあったら良いだろうと考えました。 import java.util.Iterator; import java.util.Map; import java.util.Optional; import java.util.Spliterator; imp…

Big JSON を読み込む JsonReader

大きなJSON を Google gson で読込むとき、メモリ不足にならないように、fromJson ではなく JSONのトークンで読みだす JsonReader を実行するのだが、注意しなければならない点がある。以下のように、JsonReader の hasNext() 問い合わせだけでは、END_ARRAY…

yipuran-core から CSV処理機能を他に分岐する

長い間、CSV読み書きする処理を、yipuran-core ライブラリで抱えこんでいたが、 yipuran-core に様々な処理が増えてきた。 CSV書込み処理を強化したい。 という理由で、yipuran-core のバージョン 4.19 ( Ver 4.19 ) より、CSV読み書きの処理を、yip…

配列のマップのキー自動チェック登録

リストのケースに触発されて、配列の場合、、、 import java.io.Serializable; import java.lang.reflect.Array; import java.util.Map; import java.util.Optional; import java.util.function.Function; import java.util.function.UnaryOperator; /** * M…

Setコレクションのマップキーチェック add

リストMap の リストに要素を追加(3) - Oboe吹きプログラマの黙示録リストMap の リストに要素を追加(4) - Oboe吹きプログラマの黙示録を書いたので、Set の方も、、、Set の場合は、TreeSet や、HashSet を指定できた方が良いので、未指定→HashSet と…

リストMap の リストに要素を追加(4)

oboe2uran.hatenablog.comもっと短く書けるけど、メリットないか。。。 import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.f…