山崎屋の技術メモ

IT業界で働く中でテクノロジーを愛するSIerのシステムエンジニア👨‍💻 | AndroidとWebアプリの二刀流🧙‍♂️ | コードの裏にあるストーリーを綴るブログ執筆者✍️ | 日々進化するデジタル世界で学び続ける探究者🚀 | #TechLover #CodeArtisan、気になること、メモしておきたいことを書いていきます。

Java Tips

Spring Boot で作った Web サービスを Google App Engine で世界に公開する

記事を通じて、Google App EngineとSpring Bootの組み合わせによる効果的なWebアプリケーションのデプロイ手法を習得できます。無料枠を活用して個人のアプリケーションを公開し、広範なユーザーに提供する方法を理解することができるでしょう。

【Java】添付ファイル付きメールを送る

前回は単純なテキストメールの送信方法を紹介しました。www.shookuro.com今回は添付ファイル付きのメールを送りたいと思います。せっかくなので種類の違うプレーンテキストと PDF の 2 種類のファイルを添付したいと思います。maven の pom.xml の記載と「安…

【Java】 Java Mail で Gmail のサーバからメールを送信する

Java でメールを送信します。メールサーバは Gmail を拝借します。注意事項としてGoogle アカウントの設定で「安全性の低いアプリのアクセス」を許可する必要があります。これを許可しておかないと、次のようなエラーとなります。 javax.mail.Authentication…

Mockito mock() と spy() の違いとサンプルコード

前回は mock() メソッドを使いメソッドの Mock 化を行いました。 www.shookuro.com今回は mock() と spy() の違いをサンプルコードで確認したいと思います。バージョン: Java 11 junit 4.13 mockito 3.3.3 mock() と spy() の違い mock() はインスタンスの…

ユニットテストで Mockito を使う

ユニットテストで使用する Mockito で Mock 化できるメソッド・できないメソッドをまとめて、実際のサンプルコードを記しておきます。バージョン: Java 11 junit 4.13 mockito 3.3.3 Maven も利用します。公式ページ。 site.mockito.org Mockito で Mock 化…

【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

Junit を使用したユニットテスト(自動テスト)の基本を以前記事にしました。 www.shookuro.com今回は DB も含めた自動テストのやり方をメモしておきたいと思います。DB 絡みのユニットテストを行う場合、テストケースごとにテーブルのデータを準備したいこ…

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 5基本のみなので、細かいバージョンは意識しませんが、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 のソースを自動生成することがある。自動生成できるのであれば、そのソース…