Java Tips
記事を通じて、Google App EngineとSpring Bootの組み合わせによる効果的なWebアプリケーションのデプロイ手法を習得できます。無料枠を活用して個人のアプリケーションを公開し、広範なユーザーに提供する方法を理解することができるでしょう。
前回は単純なテキストメールの送信方法を紹介しました。www.shookuro.com今回は添付ファイル付きのメールを送りたいと思います。せっかくなので種類の違うプレーンテキストと PDF の 2 種類のファイルを添付したいと思います。maven の pom.xml の記載と「安…
Java でメールを送信します。メールサーバは Gmail を拝借します。注意事項としてGoogle アカウントの設定で「安全性の低いアプリのアクセス」を許可する必要があります。これを許可しておかないと、次のようなエラーとなります。 javax.mail.Authentication…
前回は mock() メソッドを使いメソッドの Mock 化を行いました。 www.shookuro.com今回は mock() と spy() の違いをサンプルコードで確認したいと思います。バージョン: Java 11 junit 4.13 mockito 3.3.3 mock() と spy() の違い mock() はインスタンスの…
ユニットテストで使用する Mockito で Mock 化できるメソッド・できないメソッドをまとめて、実際のサンプルコードを記しておきます。バージョン: Java 11 junit 4.13 mockito 3.3.3 Maven も利用します。公式ページ。 site.mockito.org Mockito で Mock 化…
前回、Selenium を使用して自動でブラウザを操作させてみました。www.shookuro.com今回は自動操作に加え、スクリーンショットを取りたいと思います。各種バージョンはこちら。Java : 11 Spring Tool Suite(IDE): 4.3.2 Selenium Server : 3.9.1 スクリ…
Web アプリの画面(ブラウザ)を自動で操作してくれるテストツールの Selenium 。公式サイトはこちら。 Selenium - Web Browser Automation今回は Selenium WebDriver を使って Java で Selenium の導入を行っていきます。Java 以外の言語を使うとしても、We…
Java の Stream について全 4 回中の2回目。 【Java】Stream を理解する その1(概要編) 【Java】Stream を理解する その2(生成編) ← この記事 【Java】Stream を理解する その3(中間操作 編) 【Java】Stream を理解する その4(終端操作 編) 公…
こんにちは。Java の Stream について概要から詳細まで全 4 回 で紹介していきます。 【Java】Stream を理解する その1(概要編) ← この記事 【Java】Stream を理解する その2(生成編) 【Java】Stream を理解する その3(中間操作 編) 【Java】Stream…
Effective Java を再度読み直して感想や考察を書いています。今回は項目8「equals をオーバーライドする時は一般契約に従う」を読み直してみました。 equals の一般契約 「一般契約」というと大げさですが単なるお約束。equals のお約束は次の5つ。簡単に…
Junit を使用したユニットテスト(自動テスト)の基本を以前記事にしました。 www.shookuro.com今回は DB も含めた自動テストのやり方をメモしておきたいと思います。DB 絡みのユニットテストを行う場合、テストケースごとにテーブルのデータを準備したいこ…
今更ですが Twitter API を 貪り始めました。Twitter4J というライブラリもありますが、先ずは生の API を利用した方法をメモしておきます。今回はベアラートークンの取得をシンプルに行いたいと思います。ユーザー認証後に取得できるトークンとは異なり、ユ…
前回、Spring Boot でファイルに定義されたプロパティの使用方法を紹介しました。 Spring Boot 独自のプロパティを定義して使う - 山崎屋の技術メモ今回は、システムの環境変数に定義された値を取得する方法を紹介します。結論から言うとプロパティファイル…
ソース本体にハードコーディングしたくない設定値は外部ファイルに定義しておくのがプログラミングの基本です。例えば DB 接続情報や消費税率、パフォーマンス調整用の値などがありますね。今回はフレームワーク Spring Boot を使用して、application.proper…
新しいプログラムを組み始めて、まず GitHub に登録しますが、やり方を忘れて調べることが多いので、手順をメモしておきます。 準備 適当なプロジェクトを作成します。こんな感じです。 例では Java の Spring プロジェクトを GitHub に登録しますが、他の言…
Effective Java を再度読み直して感想や考察を書いています。今回は、項目1「コンストラクタの変わりに static ファクトリーメソッドを検討する」です。static ファクトリーメソッドを使用する際のメリットが 4 つ、デメリットが 2 つ紹介されています。 st…
JUnit を使ったユニットテストについての基本を、命名規則やお作法なども交え、自分なりに整理してみました。公式サイト: JUnit 5基本のみなので、細かいバージョンは意識しませんが、JUnit 4.12 を使用します。例は Eclipse を使用していますが、他の IDE …
趣味で西暦・和暦変換処理を作っていて不思議な現象にあいました。LocalDate を Date に変換する必要があったので、ネットで調べたらいくつかのサイトがヒットしました。String、Date、LocalDateの変換 - Qiitajava.util.Date型にjava.time.LocalDateを変換…
ツールをみんなで共有したいときなど、各自にライブラリ Jar を用意してもらうのはなかなか難しいと思います。単純にダブルクリックやコマンドライン一行で使用できるよう、全てのライブラリを Jar ファイルに含めてしまう方法を紹介したいとおもいます。こ…
String 文字列の話です。ある文字列中の末尾に現れる正規表現文字列を置換(replace)します。 String#replaceAll String クラスの replaceAll を使用する方法。 public class Main { public static void main(String[] args) { String str = "hogehoge"; Sy…
Windows での話です。Java のソースが JDK に含まれていなくて困った。ソースのダウンロード方法について、いくつか紹介されているサイトを見たが、古い情報もあり、入手するまで 1 時間程度さまよってしまった。なんか、国とか権利の関係で、Oracle のサイ…
Java8 の LocalDate と DateTimeFormatter を使用した日付妥当性チェックについてです。2014 年に公開された Java8 を使用した日付妥当性チェックですが、すでに多くのサイトでサンプルが掲載されています。ただ、少し気になる実装も紹介されており、自分な…
プロジェクトの設計フェーズ序盤で、例外の扱いについて方針を決める必要がある。もし、自分が方針を決めるとしたらこうするというものをメモしておく。 1.検査例外と非検査例外の使い分け 最近では検査例外を悪と考え、すべて非検査例外にラップしてスロ…
オーバーロードの話です。オーバーライドではありません。 違いを簡単に オーバーロードオーバーライドの違いを簡単に説明します。オーバーライドは、親クラスのメソッドを子クラスで定義しなおすことです。通常、メソッドに @Override アノテーションを付与…
Java でメソッドを呼び出すときの引数についてのお話です。今回は参照型編。プリミティブ型(基本型)の記事はこちら。よく「Java ではすべて値渡し」って説明を初心者にしている人を見ます。決して間違いではないのですが、ちょっと不親切な気がします。 丁…
丁寧に説明しているサイトはいっぱいあるので、結論をメモしておきます。プリミティブ型(基本型)の引数は値渡しです。 public class Argument { public static void main(String[] args) { int a = 2; methodA(a); System.out.println("変数aの内容は[" + …
前回の記事はこちら。yyama1556.hateblo.jp とりあえず動くものを作った。github.comDtoTestGenerator と命名した。今のところ対応している型は int, long, Integer, Long, String のみ。テスト対象にできるクラスは 1 個 で、クラス名もハードコードとなっ…
外部ライブラリを使用せずにパッケージ配下のクラス一覧を取得する方法を調査した。DIコンテナなどは、「パッケージを指定して、その配下のクラスをコンテナに登録する」というのが一般的だと思うが、その仕組みを理解するのに役に立つ。あと、個人的な課題…
DTO のテストコードを自動生成したくて、前回リフレクションの復習をした。型の判別をするために、テスト対象となるクラスのプライベート変数の型を取得しているが、どの型がどんな文字列で表現されるのか気になったので調べてみた。次のようなクラスを用い…
(2016/9/24 追記)とりあえず動くものを作った。 【java】DTO のテストコードを自動生成への道② - 山崎屋の技術メモ プライベート変数とその setter 、 getter のみで構成された DTO のソースを自動生成することがある。自動生成できるのであれば、そのソース…