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

Web系開発メモ

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

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

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 だと、アプリのサービス登録もサポートしているみたいです。詳細は、Sprin…

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 で、次のように書…