Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

Java

SpotBugsの使い方とレポート化の手順

2024-02-24 前提条件 インストール 設定 実行方法 HTMLレポート化 EclipseでMaven Buildの実行を追加する 参考サイト Javaで静的解析がお手軽にできるツールということでレポート化できんだっけ?というので調べたときのメモ 前提条件 Java 17環境(Java 8で…

Spring Boot 2 + JQuery DataTablesで一覧画面を作成

今更ながらjQuery系ですが、使ったことがなくてでも便利そうなので使ってみました。 皆さん大好きSpring Boot 2を使用しました。 また、Pagingが面倒なので皆さん大嫌いHibernateを利用しています。 結論としてはJQuery DataTablesは思ったより使いやすくて…

Spring Bootでマルチデータソースのやり方

以前このブログで紹介したMaven + Eclipseでマルチモジュールプロジェクトを作成するのなかでサンプルコードで示したものの特にマルチデータソースのやり方についての解説です。 この記事に書いてある通り、PostgreSQLとMongoDBを組み合わせる場合を例として…

上限付き境界ワイルドカードについて

Javaを使っていると、Clazz<Foo extends Bar>とかClazzというような あまり見た目にやさしくない呪文を見かけると思います。 これはなんだ?って話です。 これは上限付きワイルドカード(upper bounded wildcard)といいます。 そもそもなんでこれが必要なのか メソッドやクラス</foo>…

Maven + Eclipseでマルチモジュールプロジェクトを作成する

良く忘れるのでメモ 様々な事情でプライベートリポジトリを立てられなかったりする場合や、 そもそもプライベートリポジトリ立てるまでもないよねというときに便利なマルチモジュールプロジェクトの構成を作ります。 お題目は、Spring Boot + MongoDB + Post…

Spring Boot 例外処理/エラーハンドリングメモ

Spring Bootでは例外処理はthrowしてしまえばわりとよしなにやってくれるが… それでも考えるべきことはある。 場合によっては例外処理をあまり使わず、オブジェクトの戻り値による処理をすることもある。 と、去年の1月からSpring Bootを使い始めてSpringの…

Spring BootのScheduledTaskの検証

@EnableSchedulingを用いて Spring BootのScheduling Tasksについて調査しました。 Spring BootにはSpring Batchという仕組みがあるのですが、やや大仰で使いにくいです。 Web系システムでの利用だと単純なスケジューリングのTaskで十分なことが多いと思いま…

Spring BootのThymeleafとTypeScriptを組み合わせてみたかったのでやってみた

Web開発では最近はReact, Vue, Angularを使ってSPAが主流ですが、 とはいっても、レガシーなjQuery UIとBootstrapと組み合わせてサーバ側でレンダリングしたいこともままありますよね。 そんなわけで、僕の場合、特にjQuery UIを使いたい。 というのが一番に…

Spring Bootの外部設定値(application.yml)のプロファイルの優先順について

Spring Bootのapplication.ymlの仕組み素敵ですよね。 かなり柔軟性がある。 あるときにアプリケーションをMariaDBとMySQLでどちらも対応できるように外部設定値(Externalized Configuration) であるapplication.ymlにて制御しようとしたときにハマったので…

スーパークラスで呼び出されているメソッドのサブクラスでのオーバーライドについて

TL;DR スーパークラスのメソッドはサブクラスでオーバーライドすれば サブクラスのインスタンス経由で呼び出すと、 たとえスーパークラスでそのメソッドが呼び出されていても当然上書きされる。 経緯 とあるライブラリをカスタマイズしたくて、 そういや、ス…

Angular + TypeScript + Spring Bootをやってみた

2018/08/12更新 最近開発でAngular(2+) + TypeScript + Spring Bootを使っています。 それぞれのバージョンの詳細はこんな感じです。 Angular 6 TypeScript 2.7.2 Spring Boot 1.5 Java 8 Maven 3 Node.js 8.11.3 Angular-CLI 6.0.8 実際の構成例 GitHubに置…

MacでSAStrutsの環境構築とチュートリアルのセットアップ

SAStrutsのチュートリアルのセットアップ方法のMac版です。 過去記事はこちら eclipseをインストールします ダウンロードしてインストールします。 ちなみにMacだといろいろついているpleiades All in Oneはないので 普通にJava EE用のインストーラーを落と…

MacのEclipseでMarket Placeが使えない[解決済み]

自分のmacOS SierraでEclipseのMarket PlaceからEclipse Tomcat Plugin 9.1.2をいれようとするとエラーが発生したのでその時のメモです。 根本的な解決は行えませんでしたが、一応JavaとEclipseを入れ直すことで解消しました。 元々の環境はEclipse Mars.2, …

Seasar2の環境構築&動作確認のメモ(Java8)

Seasar2によるサンプルアプリを作成してみます。 今回はDoltengを使います。 Java8にSeasar2は対応していない部分があるので最初のDoltengとs2jdbc-gen-buildを使うときだけ Java7で進めます。 最後にJava8にします(その代わり以降Doltengが使えなくなりま…

SAStrutsの環境構築とチュートリアルのセットアップ

今更ですが、SAStrutsのtutorialの環境構築をします。 SAStrutsとはJavaのWebフレームワークStrutsの1系を改造したものです。公式のチュートリアルのセットアップのページの手順を踏むと 情報が古いのか不親切なのかたぶんうまくいかないでしょう。 下記では…

MacにEclipse 4.5 Mars に Pleiades導入

Mac版 Eclipseのダウンロード Eclipse Downloads | The Eclipse Foundation ここからEclipse IDE for Java EE Developersをダウンロードします Pleiadesをダウンロード 統合開発環境 Eclipse 日本語化プロジェクト - Pleiades ここからPleiades All in One 4…

Javaで優先順位をつけて複数のキーでソートする方法

2020-07-30 久々にPureなJavaを書きました(*´Д`) 複数のキーでソートする書き方の説明 いろいろ書き方はありますが、 対象のクラスにComparableをimplementsして compareTo()をオーバーライドすると ソート順を定義できます。 そのうえで、 -1(左が先) 0…

C++のmapとJavaのmapの挙動が違う件

C++でmapを書いててinsertしまくってましたが、 あれれ?Javaと挙動が違うということに気付きました。 mapでinsertするとC++ではキーが重複したときに、 insertされず、valueが上書きされない。 一方、Javaのほうはputしたときに 最後にputしたものでvalueが…

MySQLでハマる Communications link failure

2020-05-18 2020/05/18 追記 いまだにアクセスがあるのでコメントを書きます。 これは古い記事ですが、今でも通用する内容かと思われます。 かなり怪しい記憶ですが、当時のバージョンは Java 6 Struts 1.2 Spring 1 MySQL 5.5 iBatis(バージョン不明だが、…

Apache HTTP ServerとApache Tomcatの連携する意味

Apache TomcatをつかっているとなぜだかApache HTTP Serverと併用しますよね。 恥ずかしながら、僕はここをなんとなく理解したようなしていないようなまま過ごしていました。 おかしいなと少し思いながら。 だってTomcatはWebサーバの機能を持っているから A…

JavaのWebアプリでのマルチスレッドについて

最初にお断りしますが、Struts 1.x系限定のお話です。 JavaでWebアプリでマルチスレッドやらスレッドセーフなどという言葉を初めて聞いたとき、 やべぇ、JavaのWebアプリって難しそう。 スレッドセーフを常に意識してコーディングして 必要なところはクリテ…

Javaのファイル読込みの定型パターンは?

Javaを使い始めて日が浅い僕ですが、Javaのファイル読込みのエラー処理の仕方ってサイトを見るとみんな微妙に違うんですよね。 ぼくはこうするのがいいんじゃない?と思ってるんですが、世間のJavanese(Javaを使う人)はどうしてるんでしょ。ちなみにJavaづか…

Javaからメールを送信 ~迷惑メール業者を駆逐してやる~

サブタイトルは冗談です。 本当にこの手法を使ってものすごい勢いでメールボムを作ると法律に抵触します。ある程度細かく説明していますが、一定の知識がない人にはできないと思われるため、 まぁ小学生みたいのには悪用されないだろうと思い、 書きます(凄…

Javaを使ってBOM付きUTF-8でハマる

Javaのサーバアプリにクライアント側からPOSTで文字列でXMLを送りつけたらXMLの解析時にパースエラーになって1時間ほどハマった時の話。 結論を先に言いますと、BOM付きのまま文字列としてサーバに送信してしまったのでJAXBでコケた。ということです。対策と…

いまさらながら Apache Struts 1.3.10 + Eclipse 環境構築

いまさらながらStrutsの開発環境を構築しよう!っていうお話です。 さて、どうしよう……。Javaといえばeclipseですね。そうですね。 別にメモ帳で書いてもいいんだけどさ。いや、やだ。 以下、とりあえず動かすのに最低限の記述を。とっかかりって大事ですよ…

シンプルアナログ時計 Part2

JavaのSwingを使った簡単なシンプルなアナログ時計です! ここではThreadを使っていますがTimerでもいけますね。 スレッドって本当に必要なときでない限り Javaソースを参考にしたページがあってここにリンクを貼りたいのですが、 いまとなっては見つからず……