山崎屋の技術メモ

IT業界で働く中で、気になること、メモしておきたいことを書いていきます。

Java Tips

【Selenium】自動でスクリーンショットを取る

前回、Selenium を使用して自動でブラウザを操作させてみました。www.shookuro.com今回は自動操作に加え、スクリーンショットを取りたいと思います。各種バージョンはこちら。Java : 11 Spring Tool Suite(IDE): 4.3.2 Selenium Server : 3.9.1 スクリ…

【Selenium】Java で画面の自動テスト

Web アプリの画面(ブラウザ)を自動で操作してくれるテストツールの Selenium 。公式サイトはこちら。 Selenium - Web Browser Automation今回は Selenium WebDriver を使って Java で Selenium の導入を行っていきます。Java 以外の言語を使うとしても、We…

【Java】Stream を理解する その2(Stream 生成編)

Java の Stream について全 4 回中の2回目。 【Java】Stream を理解する その1(概要編) 【Java】Stream を理解する その2(生成編) ← この記事 【Java】Stream を理解する その3(中間操作 編) 【Java】Stream を理解する その4(終端操作 編) 公…

【Java】Stream を理解する その1(概要編)

こんにちは。Java の Stream について概要から詳細まで全 4 回 で紹介していきます。 【Java】Stream を理解する その1(概要編) ← この記事 【Java】Stream を理解する その2(生成編) 【Java】Stream を理解する その3(中間操作 編) 【Java】Stream…

Effective Java 項目8 equals をオーバーライドする時は一般契約に従う

Effective Java を再度読み直して感想や考察を書いています。今回は項目8「equals をオーバーライドする時は一般契約に従う」を読み直してみました。 equals の一般契約 「一般契約」というと大げさですが単なるお約束。equals のお約束は次の5つ。簡単に…

DBUnit を使って Excel からデータを DB にロードする with Spring Boot

DB 絡みのユニットテストを行う場合、テストケースごとにテーブルのデータを準備したいことがあると思います。DBUnit を使えばあらかじめ用意しておいたデータをテストメソッドごとにテーブルにインポートしてからテストを実行できます。用意しておくデータ…

Twitter API ベアラートークン(Bearer Token)を取得する

今更ですが Twitter API を 貪り始めました。Twitter4J というライブラリもありますが、先ずは生の API を利用した方法をメモしておきます。今回はベアラートークンの取得をシンプルに行いたいと思います。ユーザー認証後に取得できるトークンとは異なり、ユ…

Spring Boot 環境変数の取得

前回、Spring Boot でファイルに定義されたプロパティの使用方法を紹介しました。 Spring Boot 独自のプロパティを定義して使う - 山崎屋の技術メモ今回は、システムの環境変数に定義された値を取得する方法を紹介します。結論から言うとプロパティファイル…

Spring Boot 独自のプロパティを定義して使う

ソース本体にハードコーディングしたくない設定値は外部ファイルに定義しておくのがプログラミングの基本です。例えば DB 接続情報や消費税率、パフォーマンス調整用の値などがありますね。今回はフレームワーク Spring Boot を使用して、application.proper…

【Eclipse】 プロジェクト作成から GitHub に登録するまで

新しいプログラムを組み始めて、まず GitHub に登録しますが、やり方を忘れて調べることが多いので、手順をメモしておきます。 準備 適当なプロジェクトを作成します。こんな感じです。 例では Java の Spring プロジェクトを GitHub に登録しますが、他の言…

Effective Java 項目1 コンストラクタの変わりに static ファクトリーメソッドを検討する

Effective Java を再度読み直して感想や考察を書いています。今回は、項目1「コンストラクタの変わりに static ファクトリーメソッドを検討する」です。static ファクトリーメソッドを使用する際のメリットが 4 つ、デメリットが 2 つ紹介されています。 st…

【JUnit入門】ユニットテストの基本

JUnit を使ったユニットテストについての基本を、命名規則やお作法なども交え、自分なりに整理してみました。基本のみなので、細かいバージョンは意識しませんが、JUnit 4.12 を使用します。例は Eclipse を使用していますが、他の IDE でテストするときも考…

【解決!!!】LocalDate から Date への変換で怪現象

趣味で西暦・和暦変換処理を作っていて不思議な現象にあいました。LocalDate を Date に変換する必要があったので、ネットで調べたらいくつかのサイトがヒットしました。String、Date、LocalDateの変換 - Qiitajava.util.Date型にjava.time.LocalDateを変換…

Jar に依存ライブラリを全て含めて配布する

ツールをみんなで共有したいときなど、各自にライブラリ Jar を用意してもらうのはなかなか難しいと思います。単純にダブルクリックやコマンドライン一行で使用できるよう、全てのライブラリを Jar ファイルに含めてしまう方法を紹介したいとおもいます。こ…

Java 末尾に現れる文字列を置換(replace)

String 文字列の話です。ある文字列中の末尾に現れる正規表現文字列を置換(replace)します。 String#replaceAll String クラスの replaceAll を使用する方法。 public class Main { public static void main(String[] args) { String str = "hogehoge"; Sy…

Java 8 ソースコードを入手する

Windows での話です。Java のソースが JDK に含まれていなくて困った。ソースのダウンロード方法について、いくつか紹介されているサイトを見たが、古い情報もあり、入手するまで 1 時間程度さまよってしまった。なんか、国とか権利の関係で、Oracle のサイ…

Java8 での日付妥当性チェック

Java8 の LocalDate と DateTimeFormatter を使用した日付妥当性チェックについてです。2014 年に公開された Java8 を使用した日付妥当性チェックですが、すでに多くのサイトでサンプルが掲載されています。ただ、少し気になる実装も紹介されており、自分な…

java の例外設計

プロジェクトの設計フェーズ序盤で、例外の扱いについて方針を決める必要がある。もし、自分が方針を決めるとしたらこうするというものをメモしておく。 1.検査例外と非検査例外の使い分け 最近では検査例外を悪と考え、すべて非検査例外にラップしてスロ…

Java オーバーロードの条件

オーバーロードの話です。オーバーライドではありません。 違いを簡単に オーバーロードオーバーライドの違いを簡単に説明します。オーバーライドは、親クラスのメソッドを子クラスで定義しなおすことです。通常、メソッドに @Override アノテーションを付与…

Java の引数、参照型は「参照の値渡し」

Java でメソッドを呼び出すときの引数についてのお話です。今回は参照型編。プリミティブ型(基本型)の記事はこちら。よく「Java ではすべて値渡し」って説明を初心者にしている人を見ます。決して間違いではないのですが、ちょっと不親切な気がします。 丁…

javaの引数 プリミティブ型(基本型)は値渡し

丁寧に説明しているサイトはいっぱいあるので、結論をメモしておきます。プリミティブ型(基本型)の引数は値渡しです。 public class Argument { public static void main(String[] args) { int a = 2; methodA(a); System.out.println("変数aの内容は[" + …

【java】DTO のテストコードを自動生成への道②

前回の記事はこちら。yyama1556.hateblo.jp とりあえず動くものを作った。github.comDtoTestGenerator と命名した。今のところ対応している型は int, long, Integer, Long, String のみ。テスト対象にできるクラスは 1 個 で、クラス名もハードコードとなっ…

java パッケージ配下のクラス一覧を取得 外部ライブラリは使用しない

外部ライブラリを使用せずにパッケージ配下のクラス一覧を取得する方法を調査した。DIコンテナなどは、「パッケージを指定して、その配下のクラスをコンテナに登録する」というのが一般的だと思うが、その仕組みを理解するのに役に立つ。あと、個人的な課題…

java のいろいろな型の型名を文字列で出力させてみる

DTO のテストコードを自動生成したくて、前回リフレクションの復習をした。型の判別をするために、テスト対象となるクラスのプライベート変数の型を取得しているが、どの型がどんな文字列で表現されるのか気になったので調べてみた。次のようなクラスを用い…

【java】DTO のテストコードを自動生成への道①

(2016/9/24 追記)とりあえず動くものを作った。 【java】DTO のテストコードを自動生成への道② - 山崎屋の技術メモ プライベート変数とその setter 、 getter のみで構成された DTO のソースを自動生成することがある。自動生成できるのであれば、そのソース…

【Eclipse】Java compiler level does not match・・・のエラー

Eclipse でプロジェクトの JRE バージョンをいじったりすると次のようなメッセージが表示されることがある。 Java compiler level does not match the version of the installed Java project facet.今回は Java のバージョンを 1.6 から 1.8 に変更したら出…

【Eclipse】 static import を整理させない

Eclipse のデフォルトでは "import static hoge.fuga.*" のようなソースの記述があった場合、import 文の整理を行うと勝手に "static import hoge.fuga.piyo" のように整理されてしまう。例えば、 package org.yyama; import static org.hamcrest.CoreMatche…

【Eclipse】自動で import を整理する。

Eclipse の豆知識。javaでコーディングしていると頻繁に import 文を追加したり消したりする。けっこう面倒くさい。不要になった import 文には警告が表示される。 Ctrl + Shift + O のショートカットでこれら不要な import 文は整理してくれるのだが、更に…

【Spring Framework】 登録されているBeanの一覧を表示

Spring Frameworkを使用して開発をしていると、XMLでbean定義しているはずなのに[No qualifying bean of type]とか[beanが定義されていません]のようなエラーが出てはまるときがある。そんなときは本当にSpringのコンテキストにbeanが登録されているかどうか…

Tomcat9 インストール

WEBアプリケーションでよく利用されるアプリケーションサーバTomcatをインストールする。インストールと言ってはいるものの、実際にはファイルを展開して置くだけである。Tomcatは軽量なサーブレットJSPコンテナであり、java言語で作成されたサーブレットやJ…