Web系開発メモ

Java, JavaScript, CSS, HTML などの記事を書いています。

Java:コンパクト・プロファイル

Java8 で導入されたコンパクト・プロファイルについて、調べたことを書いていこうと思います。 コンパクト・プロファイルとは? Java SE の API のサブセット(グループみたいなもの)で、compact1, compact2, compact3 の3つがあります。compact1 が一番小…

Eclipse:SceneBuilderの設定

Eclipse で JavaFX 開発をするために、SceneBuilder の設定をしてみました。今回はその手順を書いていこうと思います。 前提 e(fx)clipse と SceneBuilder がインストールされていることが前提となります。インストール方法は、以下のリンク先に記載していま…

JavaFX:SceneBuilderのインストール

JavaFX の GUI 周りを開発するために、SceneBuilder をインストールしてみました。これからその手順を書いてみようと思います。 補足. インストーラについて SceneBuilder のインストーラは、GLUON が配布しているものを使いました。詳細は、記事「JavaFX:S…

Eclipse:e(fx)clipseのインストール

Eclipse で JavaFX 開発をするために、e(fx)clipse をインストールしてみました。これからその手順を書いてみようと思います。 前提 以下のソフトがインストールされていることが前提となります。 JDK 1.8 Eclipse(執筆時 Neon.2 = 4.6.2) JDK と Eclipse …

JavaFX:SceneBuilderの入手方法

Java SE 8u40 から、オラクルは JavaFX の SceneBuilder(バイナリ)の配布をやめてしまったようです。 Starting with Oracle Java SE 8u40, Oracle does not provide a separate set of accompanying JavaFX Scene Builder binaries. from: JavaFX Scene Bu…

Linux:プロンプトを短くする

Vagrant の ubuntu/trusty64(Ubuntu 14)で、プロンプト($ の前)が長かったので、短くする方法を調べてみました。 短くする設定 ホームディレクトリで $ vi .bashrc を実行して、一番下の行に次の文言を追加しました。 export PS1="\w\$ " 以下の内容だけ…

SpringBoot:MavenでJavaバージョンを指定

Spring Boot を使っている場合、Maven のプロパティ java.version で、Java バージョンを指定することができます。 <properties> <java.version>1.8</java.version> </properties> ただ、他のアプリでも java.version を使いそうな気がしてきます。 そこで、Spring Boot を使っていても、下のように他のプロジェクト…

Maven:Java のバージョン設定

Maven の pom.xml で、Java のバージョンを設定する方法を書いていきます。 設定方法 次のように、pom.xml の プロパティで設定するのが良さそうでした。 <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> 理由 プロパティで設定すると、プラグインのエンコーディング設定を省略できるからです。 <plugin> <groupId></groupid></plugin>…

Maven:エンコーディング設定

Maven の pom.xml で、ソースやレポート出力のエンコーディングを設定したいときがあります。設定方法はいくつかありますが、良さそうな設定方法を調査してみました。 設定方法 次のように、pom.xml の プロパティで設定するのが良さそうでした。 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF</project.reporting.outputencoding></properties>…

Windows:cURL のインストール

curl は、色んなプロトコルでデータをやりとりできるツールです。今回は、curl を Windows 7(64bit)にインストールする手順を書きます。 補足 Windows に GitHub Desktop などをインストールしている場合、Git Shell で curl を使うことができました(curl…

SpringBoot入門:mockitoで単体テスト

Spring Boot の Webアプリで、mockito を使って単体テストをする方法を書きます。今回は、リポジトリクラスのモックを用意して、DB にアクセスせずにテストしてみます。 前提(テスト対象) 記事「JPAでデータアクセス」で作成したコントローラのメソッド cr…

SpringBoot入門:トランザクションの管理

Spring Boot の Webアプリで、RDB のトランザクションを管理する方法を書きます。Spring Framework の アノテーション @Transactional を使って管理します。 前提 この記事は、記事「JPAでデータアクセス」の資源(ビルドファイル、クラス等)を利用していま…

SpringBoot入門:JPAでデータアクセス

SpringBoot の Webアプリで、JPA を使う方法を書いていきます。JPA を使うと、SQL を書かずにデータを操作することができます。 前提 この記事は「FlywayでDBマイグレーション」の環境(JDK, PostgreSQL等)や資源(ビルドファイル, クラス, テーブル等)を…

SpringBoot入門:JDBCでデータアクセス

SpringBoot の Webアプリで、JDBC 機能を使う方法を書いていきます。プログラム内に SQL(insert, select など)を書いてデータを操作します。 前提 この記事は「FlywayでDBマイグレーション」の環境(JDK, PostgreSQL等)や資源(ビルドファイル, クラス, …

Windows:git の curl を使う

Windows に GitHub Desktop などをインストールしている場合、Git Shell で curl を使うことができました。今回は、その手順を書いていきます。 手順1. Git Shell を起動 Windows のスタートメニューから、GitHub Desktop などに付属している Git Shell を起…

SpringBoot入門:FlywayでDBマイグレーション

Flyway は、SQLベースのDBマイグレーションツールです。DBマイグレーションとは、DBのデータを残したまま、テーブル作成やカラム変更等をすることです。 SpringBoot のアプリで Flyway を使うと、起動時にマイグレーション用のSQLが実行されるようになります…

POML開発:2017年03月08日

先日、POML の新しいバージョン v0.3.0 をリリースしました。 今回の変更で、Spring Boot の Web アプリが開発しやすくなります。例えば、次のような poml ファイルを用意すると、 pom.poml pkg=com.example:demo:0.0.1 parent=org.springframework.boot:spr…

SpringBoot:MongoDBにアクセス

SpringBoot の Webアプリから、MongoDB にアクセスする方法を書きます。データ(≒ドキュメント, JSON)を登録したり、検索したりしてみます。 環境・ツール JDK 1.8 以上 Maven 3.0 以上(or Gradle 等) MongoDB(執筆時 3.4.2) 手順1. ビルドファイルの作…

SpringBoot入門:アプリの管理やモニタリング

Spring Boot の Webアプリを、HTTP経由で管理したり、モニタリングする方法を書きます。今回は、Spring Boot の Actuator という機能を使います。 前提 この記事は、入門記事「JSONを返す」の資源(ビルドファイル、クラス等)を利用しています。必要に応じ…

SpringBoot入門:静的コンテンツを返す

Spring Boot の Webアプリで、サーバサイドから静的コンテンツ(html, js, css, png, etc)を返却する方法を書いていきます。 前提 この記事は、入門記事「JSONを返す」の資源(ビルドファイル、クラス等)を利用しています。必要に応じて参照して頂けると嬉…

SpringBoot入門:アプリのjar作成

Spring Boot の Webアプリを、jar 形式でパッケージングして起動する方法を書きます。 前提 この記事は、入門記事「JSONを返す」の資源(ビルドファイル、クラス等)を利用しています。必要に応じて参照して頂けると嬉しいです。 手順1. jar の作成 Maven の…

SpringBoot入門:タスクのスケジューリング

Spring Boot のスケジューリング機能を使って、一定間隔で処理を実行する方法を書きます。 前提 この記事は、入門記事「JSONを返す」の資源(ビルドファイル、クラス等)を利用しています。必要に応じて参照して頂けると嬉しいです。 手順1. タスクの作成・…

SpringBoot:外部のサービスに接続

Spring Boot の Web アプリ(サーバサイドの Java)から、外部のサービスに接続する方法を書きます。 今回は、Spring Boot が提供するサービス http://gturnquist-quoters.cfapps.io/api/random に接続して、JSON を取得してみます。JSON の内容は、次のよう…

SpringBoot入門:サービスクラスを使う

Spring Boot の Webアプリで、サービスクラスを使う方法を書きます。サービスクラスは「ドメイン駆動設計 - Wikipedia」に登場するオブジェクトで、なんらかの処理(機能)を実装するものです。 前提 この記事は、入門記事「JSONを返す」の資源(ビルドファ…

SpringBoot入門:ファイルアップロード

Spring Boot の Webアプリで、ファイルアップロードを受け付ける方法を書きます。手順としては、次の資源を作成していきます。 アップロードを受け付けるコントローラ アップロードする画面 前提 この記事は、入門記事「JSONを返す」の資源(ビルドファイル…

SpringBoot入門:jQueryでJSONを受信

Spring Boot の Webアプリで、jQuery を使って JSON を受け取る方法を書きます。JSON は、記事「JSONを返す」のコントローラから取得します。 前提 この記事は、入門記事「JSONを返す」の資源(ビルドファイル、クラス等)を利用しています。必要に応じて参…

SpringBoot入門:JSONを返す

Spring Boot を使って、サーバサイドから JSON を返却する方法を紹介します。 次の URL にリクエストすると、 http://localhost:8080/hello 次のレスポンスを返す例を書いていきます。 {"message":"Hello, World!"} 環境・ツール JDK 1.8 以上 Maven 3.0 以…

SEO:meta keywords タグについて

etc

meta keywords タグは、Google の検索エンジン最適化には必要ないみたいです。 Google の人は、公式ブログ で「meta keywords タグを検索順位を決定するために使っていない」と回答しているようです。 また、Google Search Console ヘルプ にも、サポートす…

Vanilla.js 入門

JavaScript のことを調べていたら、Vanilla JS というものに出会いました。なかなか興味深かったので、これから Vanilla JS についてまとめていこうと思います。 Vanilla JS はジョーク Vanilla JS は、速くて軽い JavaScript フレームワークとして紹介され…

Java:ラムダは遅い?

Java 8 のラムダを使ってみたら、数十ミリ秒単位で処理が遅くなることがありました。そこで、ちょっとパフォーマンスを計測してみることにしました。 環境 CPU: Intel Core i5-2430M 2.40GHz メモリ: 8GB OS: Win 7 Java: SE 1.8.0_71 計測プログラム ラムダ…

POML開発:2016年12月30日

先日、POML の新しいバージョン v0.2.2 をリリースしました。 主な変更点としては、コンバーターの issue と scm を追加しました。以下にその詳細を書いていきます。 issue pom.xml の issueManagement タグを生成することができます。使用例は以下の通りで…

SpringBoot:アプリの起動・停止シェルスクリプト

以前、Spring Boot のアプリを CentOS のサービスとして起動・停止するシェル(スクリプト)を作成したことがありました。これからその内容を書いていこうと思います。 補足 最近の SpringBoot だと、アプリのサービス登録もサポートしているみたいです。詳…

Ubuntu:xvfbの起動スクリプト

今回は、Ubuntu 14(Vagrant Box の ubuntu/trusty64)にインストールした Xvfb の起動スクリプトについて書いていきます。具体的には、 起動スクリプトの内容(紹介) 起動スクリプトの登録方法 起動スクリプトの解除方法 といった内容になります。 ※ Xvfb …

POML開発:2016年11月27日

先日、POML の新しいバージョン v0.2.1 をリリースしました。 新バージョンでは、よりシンプルに pom.poml(POML ファイル)を書けるようになりました。 旧バージョン これまでの pom.poml には、Layout Section(デリミタ --- より下の部分)が必要でした。…

Ubuntu:xvfbとfirefoxのインストール

Ubuntu 14(Vagrant Box の ubuntu/trusty64)で Selenium 関連のテストをしたくて、Xvfb と FireFox をインストールすることがありました。今回は、そのインストール方法と利用手順を書いていきます。 インストール apt-get コマンドでインストールします。…

Maven:dependencyManagementについて

POM(XML)の 要素 dependencyManagement について、調べたことをまとめていこうと思います。 用途(利用ケース) 親POM の dependencyManagement に依存性を書くと、子POMに継承させることができるようです。 使用例 親POM で、次のように書いていきます。 …

Maven:pluginManagementについて

POM(XML)の 要素 pluginManagement について、調べたことをまとめていこうと思います。 用途(利用ケース) 子POMに継承させたい plugin がある場合、親POM の pluginManagement に該当の plugin を書いていくみたいです。 使用例 親POM で、次のように書…

POML開発:2016年10月30日

最近、Java で POML というツールを開発しています。POML は「POM(pom.xml)’s Minimal Language」の略で、 POML ファイル(pom.poml)の記法 POML ファイルを Maven の pom.xml に変換するツール で構成されています。 POML ファイルの例 今は2つのセクシ…

Java:JVMの稼働時間を取得

java.lang.ManagementFactory を使って、JVM の稼働時間(起動後の経過時間)を取得する方法を書いてみます。 Javaコード long uptime = ManagementFactory.getRuntimeMXBean().getUptime(); 補足 uptime は、日本語だと「連続稼働時間」とか「起動時間」と…

Maven:GPGプラグインのスキップ

Maven GPG Plugin を使うと、Maven のアーティファクト(jar などの生成物)を GnuPG でサインすることができます。このサインですが、必要になるのは Maven Central にアップロードするときなのかなと思います。 そこで、サイン(GPGプラグインの処理)をス…

Maven:javadocプラグインのエンコーディング

Maven Javadoc Plugin の javadoc:jar(ゴール)を使うことがあったので、エンコーディング設定を調べてみました。 デフォルトは UTF-8 次のように pom.xml で何も設定しないと、javadoc の生成に UTF-8 が使われるようです。 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>mav</artifactid></plugin>…

Maven:ライセンスの設定

Maven の pom.xml では、ライセンスの設定をすることができます。Central Repository に jar をデプロイしたり、ソースを公開したりするときに設定するようです。 これから、ライセンスの設定方法について調べたことを書いこうと思います。なお、ライセンス…

GitHub:ライセンスを追加する

etc

GitHub でリポジトリのライセンス(MIT, Apache 2.0, etc)を設定すると、リポジトリのページにライセンスを表示できるようです。イメージは下のような感じです。 これから、既存のリポジトリにライセンスを設定する手順を書いていきます。 手順の概要 GitHu…

GitHub:push で 403 エラー

etc

CentOS から GitHub に push(git push)したら、403 エラーが発生しました。今回はそのエラー内容や原因、対応方法をまとめていきます。 エラー内容 GitHub から https で clone したリポジトリ(の資源)を更新して、git push を実行したら、次のエラーが…

GitHub:ユーザ invalid-email-address のコミット

etc

普段使わない環境から GitHub に push したら、コミットしたユーザが invalid-email-address と表示されてしまいました。今回はその原因や対応方法をまとめていきます。 invalid-email-address になる原因 git config で user.email を設定せずにコミットし…

Windows:コマンドの連結

Windows のコマンドプロンプトで、連続してコマンドを実行したいことがありました。どうやら、Windows も Linux のように、&& などでコマンドを連結できるようです。今回は、その調査内容をまとめていこうと思います。 参考文献 次の Microsoft のページを参…

Gradle:Javaコンパイルのバージョン指定

Gradle で Java をコンパイルするときに、ソースコードのバージョンとターゲットクラスファイルのバージョンを指定する方法を書いていきます。この2つのバージョンは、javac コマンドのオプション -source, -target に対応するものです。 設定方法 Java プ…

Gradle:Javaコンパイルのエンコーディング指定

Gradle で Java をコンパイルするときに、エンコーディングを指定する方法を書いていきます。 設定方法 Java プラグインを適用して、compileJava.options.encoding で設定します。次のように書くと、UTF-8 に設定できます。 apply plugin: 'java' compileJav…

Java:Google Http Client で HTTP通信

Google の Http Client を使って、Java で HTTP通信をする方法を書いていこうと思います。 HTTP接続ライブラリの選択 Google Http Client では、HTTP接続ライブラリを次の3種類から選択できるようです。 NetHttpTransport(JDK の HttpURLConnection がベー…

Gradle:Java 実行時にシステムプロパティを渡す

Gradle の run タスクを使うと、Java の Main クラスを実行できます。以前、run タスクでシステムプロパティを渡す方法を調査することがありました。今回は、その方法をまとめていこうと思います。 build.gradle を編集 次のサンプルのように、tasks.with・…