アラカン"BOKU"のITな日常

文系システムエンジニアの”BOKU”が勉強したこと、経験したこと、日々思うこと。

Spring Boot入門

STS(Spring Tool Suite)とspring-boot-starter-parentのバージョンアップのエラーでハマった!

Spring-bootのバージョンアップで予想外のところでハマりました。

SpringBootでSpringのキャッシュ機構を使う2回目。redisを格納先として使う。STS+SpringBoot

Springのキャッシュ機構で、外部格納先として、NO-SQLのインメモリDBである「redis」を利用するパターンをやってみます。

SpringBootでSpringのキャッシュ機構を使う1回目。ConcurrentHashMap版。STS+SpringBoot

Springには、非常に優れたChache機構があります。 SpringBootスタータープロジェクトで、キャッシュにチェックをつけてプロジェクトを作るとキャッシュ機構が組み込まれます。 あとで追加するなら、pom.xmlに以下のように書きます。(Mavenの場合のみ) <dependency> <groupId>org</groupid></dependency>…

SQLライクなORマッパ。JOOQの使い方2回目。基本構文と戻り値の受取り。STS+SpringBoot

今回は、SQLで頻繁に使う基本構文をJOOQで書いたら、どんな感じになるのかを整理してみます。 なお、事前にテーブル定義を生成(CodeGenerator)できている前提の話になります。 テーブル定義の生成方法やセットアップについては、前回の記事を参照してくだ…

SQLライクなORマッパ。JOOQの使い方1回目。利用環境構築と動作確認。STS+SpringBoot

SpringBootの標準なので、DBアクセスにはJPAを使ってます。 でも、自分としては、S2JDBCみたいにSQLライクな書き方ができる方が好きなので、そういうのはないかなと思ってました。 そしたら、JOOQを使えば、かなりSQLライクに見通しのいい記述ができるらしい…

STS(Spring Tool Suite)3.9.0で「Springスタータープロジェクト」が少し進化してました。

前回、STSを最新版(3.9.0)にして、既存プロジェクトのStringBootとthymeleafのバージョンをあげてみました。 で、せっかくだから、最新版でプロジェクト作り直してみようと思ったら、新規スタータープロジェクト作成時にSpringBootのバージョンを選択でき…

STSを3.9.0、Spring Bootを1.5.4、thymeleafを3.0系にバージョンアップ。ついでにJava8DateTime対応も。

ずっと、STS 3.8.3+SpringBoot 1.5.1+thymeleaf 2.1の組み合わせでやってきたわけなんですけど、当時は最新だったそれも、すでに若干古くなってます。とりあえず、環境を最新にしようかなと。

Ajax:Jsonで受け取り画面遷移なしに更新する STS+Spring Boot +thymeleaf

今回も、StringBoot+thymeleafで、Ajaxを使うパターンです。 前回は、thymeleafの「th:fragment」機能を使って、プルダウンリストを更新するケースをやりました。その時は、jQueryの$Ajaxの戻り値として整形済のHTMLを受け取りましたが、今回は、普通にデー…

Ajax:プルダウンリストの内容を画面遷移なしに更新する STS +Spring Boot+thymeleaf

今回は、SpringBoot+thymeleafでAjaxを使って、画面遷移せずに、画面の一部を更新する「非同期処理」をやります。jQueryの$Ajaxの仕組みを使うと、比較的容易に処理は書けますが、SpringBoot+thymeleafの機能を使っているHTMLの一部を書き換えるのは、JSP…

GoogleのreCAPTCHA V2をでロボットによる投稿を防ぐ STS +Spring Boot +thymeleaf

今回は、Googleの「reCAPTCHA」を使います。Captchaは、WEBサイトのコメントシステムや問い合わせフォームに対して、ロボットを利用したスパム投稿を防ぐ手段です。従来は難読文字・数字を表示した画像を読み取って人間が入力する方法でしたが、それをより洗…

SpringBootだとログの書き出しも楽ちんです。 STS +Spring Boot+thymeleaf

SpringBootでのログ出力の基本的なところをやります。 あれこれ、カスタマイズするのではなく、とりあえずログをファイルに書き出せるようにするところまでを範囲にします。SpringBootでは、spring-boot-starter-webを有効にすると、自動的にログも有効にな…

入力チェック:複数項目の相関チェックアノテーションの作り方 STS +Spring Boot+thymeleaf

複数項目の相関チェック処理を共通処理化して、アノテーションで使えるようにする方法を試してみます。 複数項目の相関チェックとは、例えば、履歴管理するデータの開始日・終了日が、「開始日より終了日が過去ではない」などの相互の整合性を確認するような…

画面遷移:リダイレクトとフォワードでパラメータを受け渡す STS +Spring Boot+thymeleaf 

前回、GET時のパラメータを受け取る方法の確認をしました。 arakan-pgm-ai.hatenablog.com 今回は、リダイレクトとフォワード時に、どうやってパラメータを受け渡すのかを確認していきます。 リダイレクトとフォワードとはそもそもなんぞや?というのは、Jav…

画面遷移:GET時のリクエストパラメータを受け取る STS +Spring Boot +thymeleaf 

Spring Boot+thymeleaf で、リクエストパラメータの受取方法と画面遷移のやり方を確認してみます。 hello.html を想定して、/localhost:8080/hello?msg=TEST のパラメータ付URLを渡してみます。 パラメータの受取はコントローラクラスで定義します ソースは…

クラスパス内の静的ファイルにアクセスする STS +Spring Boot +thymeleaf 

CSVデータとかを置いといて、初期データとして読み込むとか、独自の設定ファイルを用意するとか、たまに、静的ファイルを使いたいときがあります。 当然、テストの時と本番運用時でファイルのパスを書き換えたりはしたくはありません。 やっぱり、絶対パス指…

入力画面:画像をSUBMITボタン代わりに使う STS+Spring Boot +thymeleaf 

先にお断りしておきます。今回はほぼ jQueryの話です。 先にお断りしておきます。 さて、本題です。 WEBアプリケーションは、原則、「フォームに何かを入力したり、選択して実行(SUBMIT)ボタンを押す」という操作の繰り返しです。

入力チェック用アノテーション定義を自分で作る。(独自実装版)STS +Spring Boot +thymeleaf 

今回も、入力チェックアノテーション定義を作ってみます。 前回は、標準アノテーションの再利用・集約をするだけで、チェックロジックの実装を行わないパターンでした。 arakan-pgm-ai.hatenablog.com 今回は、独自にチェックロジックも実装するやり方をやっ…

入力チェック:アノテーション定義を自分で作る。(再利用版)STS +Spring Boot+thymeleaf 

Spring Boot +thymeleafの入力チェックでは、@Patternを使えば、大抵のことができるのを前の記事に書きました。 arakan-pgm-ai.hatenablog.com ですが、前にも書いたとおり、このやり方にはちょっと欠点があります。 それは、超わかりづらいことです。 こん…

入力チェック:@Patternと正規表現で独自チェックする。STS+Spring Boot+thymeleaf 

入力チェックに使える標準アノテーションがあります。 こちらの記事でその一覧表とかも掲載しました。 arakan-pgm-ai.hatenablog.com 種類は色々あるのですが、個人的にサンプルプログラム以外で使っているのを調べてみたら、@NotNull、@Size、@Patternくら…

入力チェック:未入力時に空文字が渡される仕様を回避する。STS +Spring Boot +thymeleaf 

String Boot + thymeleaf ・・というかSpring MVCでは、テキストボックスを未入力な状態で、Submitした時に、空文字(””)をセットする仕様になっています。 なので、@NotNullアノテーションをつけても、未入力の時にエラーになってくれないんですという話を…

セッションを使って画面間で情報を受け渡す STS +Spring Boot+thymeleaf 

StringBootで、Webアプリケーションには必須のセッション管理をやってみます。 HTTPは、ご存知の通りステートレス(クライアントとのセッション情報を保存しない)なので、複数の画面間で共有しなければならない情報は自前で管理しないといけません。 セッシ…

入力画面、ラジオボタンとラジオボタングループを使う STS+Spring Boot+thymeleaf 

Spring Boot (1.5.1)+thymeleafで、ラジオボタンを配置した画面の処理をやります。 ラジオボタンは複数の選択肢のうち、ひとつだけを選ばせます。 選択の仕方のバリエーションとして以下の2パターンがあります。 普通に一箇所に固めた選択肢で選ばせる場…

入力画面、チェックボックスを使う。 STS. +Spring Boot +thymeleaf 

Spring Boot 1.5.1)+thymeleafで、チェックボックスを配置した画面の処理をやります。 チェックボックスを一つだけつける場合と、いくつか並べて複数選択を可能にする場合の両方をやってみます。 なお、今回も、前回までの画面にこの2つを追加する形でや…

thymeleaf2.1.xを使うなら、HTMLのタグの閉じ忘れは許されないから注意しよう。 

入力画面で使う各パーツの使い方の確認をしていて、動作確認のためにHTMLを書く前に認識しておいた方が良いことがあるのに気づいたので、先にそれを書きます。 2017/12/04追記 >ここに書いた現象は、Thymeleaf2.1.x(2.1系)のみ発生します。 >Thymeleafが…

入力画面、プルダウンリストとマルチセレクトボックスを使う。STS +Spring Boot+thymeleaf 

Spring Boot (1.5.1)+thymeleafで、単一選択のSELECTボックス(プルダウンリスト)と、複数選択可能なマルチSELECTボックスを配置した画面の処理をやります。 前回までの画面にこの2つを追加する形でやるので、コントローラクラスとかは同じものを使い、…

入力画面、今度はテキストエリアで複数行入力する。 STS +Spring Boot +thymeleaf 

Spring Boot+thymeleafで、テキストボックスでの1行入力をやったので、今回はtextareaを使った複数行のテキストの入力をやります。 同じテキストなのですが、複数行=改行コードがはいるというだけで、単純にやるとうまくいきません。 今回は、その違う部分…

入力画面、テキストボックスの入力と基本的なチェックを使う。 STS+Spring Boot +thymeleaf 

SpringBoot+thymeleafで、テキストボックスの入力とバリデーションをやります。 簡単なIDとパスワードとコメントを入力する画面にします。 Formクラスの定義です 最初にリクエストとレスポンスで受け渡しをする項目をFormクラスに定義します。 以下のような…

日本語しか使わなくても、i18N対応はする意味がある。STS+Spring Boot+thymeleaf 

日本語しか使う予定はない!と言い切れる場合でも、多言語対応できるようにはしときましょう。 その場合、正確には多言語対応ではなく、メッセージの外出し(=プロパティファイルで管理)です。 メッセージをプロパティファイルで外出しする メッセージを1…

参照画面:条件に一致した時のみHTML要素を出力する。 STS +Spring Boot+thymeleaf 

Spring Boot + thymeleafで、前回一覧表出力をやったのですが、今回は、条件に一致した時のみHTML要素を出力するのをやってみます。 受け渡されたPersonオブジェクトの出力データの値(Value)を得点ととらえて、得点によって5段階評価(A,B,C,D,E)のイラス…

参照画面:テーブルを使い、行毎に色分けした一覧表を表示する。 STS+Spring Boot+thymeleaf 

Spring Boot + thymeleafで、基本的なデータ出力画面を構成する方法をもう少し覚えていこうと思います。 オブジェクトをListで渡して一覧表を表示するのをやってみます。 せっかくなので、一覧表の奇数行と偶数行で色を変えてみます。 まず、Java側ですね。 …