読者です 読者をやめる 読者になる 読者になる

Web系開発メモ

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

POML開発:2017年05月28日

POML の新しいバージョン v0.3.3 をリリースしました。 主な変更点 poml コマンドに init オプションを追加したりしました。init オプションは、対話形式で最小限の pom.poml を作成します。 > poml init This option creates pom.poml and maven project. P…

Vagrant:Boxのバックアップ・リストア

etc

Vagrant の box をバックアップしてリストアする手順を書いていきます。 前提 バックアップしたい box が停止されていることが前提です。 1. バックアップ手順 1.1. box のディレクトリに移動 コマンドラインで、box のディレクトリ(Vagrantfile がある場所…

マウス・キーボード:メーカーサポート窓口

マウスやキーボードのメーカー3社について、サポート窓口(チャネル)の充実度を比較してみました。あくまで自分個人の考えですが、評価結果は以下のとおりになりました。 サンワサプライ >= バッファロー > エレコム 1. 評価観点 Web か Mail の窓口がある…

Java:左トリム(前方トリム)

Java の文字列(String)で、左(前方)の空白を削除したいことがありました。これからそのコード例を書いてみます。 コード例 public static String ltrim(String s) { int len=s.length(), i=0; char[] c = s.toCharArray(); while ((i < len) && (c[i] <=…

Maven Central(Nexus)で Close エラー

Maven Central Repository に jar をデプロイしてから、Nexus Repository Manager で Close 処理をしたらエラーになったことがありました。 エラーのタイプは2つ確認していて、その詳細や対応方法をまとめてみました。 エラーのタイプ 1. POM Validation の…

バージョン番号の振り方(GitHub推奨)

etc

バージョン番号の振り方を調べていたら、GitHub推奨の セマンティック バージョニング(Semantic Versioning) を見つけることができました。 今後はその仕様どおりバージョンを振っていこうと思いつつ、自分が忘れないように簡単なメモを書いてみました。 …

SpringBoot:MessageSource を使う

Spring の MessageSource を使うと、メッセージをプロパティファイルから簡単に取得できます。これから、Spring Boot で MessageSource を使う手順を書いていこうと思います。 手順1. application.properties の設定 次のように設定すると、メッセージを mes…

POML開発:2017年04月30日

先日、POML の新しいバージョン v0.3.113 をリリースしました。 主な変更点 今回は少し大きな変更になりました。 POML ファイルの構文変更 設定のキー名変更 (ex. property -> properties) 設定のキーを複数削除 (ex. depends, sbp, …) 等々 POML ファイルに…

Spark FW:テンプレートエンジンを使う

Java の Spark Framework を使ったアプリで、jmustache(Mustache の Java実装)を使う方法を書いていきます。 前提1. spark-template-mustache について Spark Framework のドキュメント だと、Mustache を使うために spark-template-mustache を依存性に追…

Spark FW:静的コンテンツを返す

Java の Spark Framework を使って、サーバサイドから静的コンテンツを返してみます。 前提. アプリ資源について この記事では、Spark FW:HelloWorldを返す の資源(ビルドファイル、コード)を使っています。必要に応じて参照して頂けると嬉しいです。 手…

Spark FW:JSONを返す

Java の Spark Framework を使って、JSON の HTTP レスポンスを返してみます。 前提. アプリ資源について この記事では、Spark FW:HelloWorldを返す の資源(ビルドファイル、コード)を使っています。必要に応じて参照して頂けると嬉しいです。 手順1. ビ…

Maven:Java プログラムの実行

Maven プロジェクトの Java プログラム(main メソッドを持つクラス)を、Exec Maven Plugin で実行する方法を書いていきます。 今回は pom.xml にプラグインを定義せず、コマンドラインからクラス名や引数などを渡して実行してみます。 手順1. pom.xml の作…

Spark FW:ログ出力

Java の Spark Framework を使ったアプリで、ログを出力する方法を書いていこうと思います。 前提1. アプリ資源について アプリの資源(ビルドファイル、コード)は、Spark FW:HelloWorldを返す に書いてあります。この記事では、リンク先のアプリを使って…

Spark FW:HelloWorldを返す

最近、Java の Spark Framework(Webアプリケーションフレームワーク)を少しだけ使ってみました。 Spark Framework の特徴としては、軽量・ラムダで書ける・Express(Node.js の Webアプリケーションフレームワーク)のように書ける・等々です。 これから、…

SpringBoot入門:目次

この記事には、SpringBoot 入門記事のリンクをまとめています。 入門記事は、タスクベース(あれをしたい、これを使いたい)で書いています。SpringBoot で Webアプリを作ってみたい場合は、Spring Boot アプリ開発 を参考にして頂けると嬉しいです。 1. Web…

SpringBoot入門:Mustacheを使う

Spring Boot の Webアプリで、テンプレートエンジンの Mustache を使う方法を書いてみようと思います。Mustache で HTML をレンダリングして、レスポンスとして返してみます。 前提 この記事は、入門記事「JSONを返す」の資源(ビルドファイル、クラス等)を…

Struts2の脆弱性調査(参考文献など)

ちょっと前に、Struts 2 の脆弱性がニュースになったりしてました。その際、色んなニュース・記事・ブログなどを見させて頂きました。今回は、その中でも特に参考になったリンクなどをまとめてみました。 概要や事象など Apache Struts 2における脆弱性 (S2-…

Java:ラムダの中の例外

Java のラムダの中で、Exception をスローするとコンパイルエラーになることがありました。そこで、うまくラムダ内でも検査例外をスローできないか調べてみました。 エラーになるコード例 次のようなコードだと、main メソッドで throws 宣言していますが、…

Java:どのテンプレートエンジンを使うか?

Web アプリ開発(サーバサイド Java)で、どのテンプレートエンジンを使うか考えてみました。あくまで私個人の考えなので、広い心で見て頂けると嬉しいです。 現時点(2017.03.30) 今は、jmustache (Mustache の Java実装)を使いたいと思っています。 理…

Maven:コンパクト・プロファイルを使う

Maven のコンパイルで、コンパクト・プロファイルを指定する方法を書いていきます。コンパクト・プロファイルの解説は、こちら の記事を参照して頂けると嬉しいです。 指定方法 maven-compiler-plugin のタグ compilerArgs で、プロファイルを設定してみまし…

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>…

SpringBoot入門:更新履歴

SpringBoot入門記事 の変更履歴をまとめています。 1. Web関連 2017.02.22:変更 記事「静的コンテンツを返す」を追加 ビルドシステムを Gradle から Maven に変更 SpringBoot を 1.3.5 から 1.5.1 にバージョンアップ 記事の改善 2017.06.10:新規作成 2. R…

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 フレームワークとして紹介され…