えらちおごはん

汚ねえメシ画像と学んだことのメモ

Struts2×SpringFramework×MyBatisでWebアプリ書いた

前の職場のコード資産に頼らずにWebアプリをどこまで書けるのかがどうしようもなく不安になってしまったので、気持ちをなだめるためにTODOリストを実装した。

github.com

大したことは書いてないし、技術的な挑戦もないんだけど、丸2日かければとりあえずこれくらいのことはできるんだな、という結果が得られたので、精神の安定には繋がったと思う。文系卒でも、五年くらい働いていればこれくらいのことは出来るし、レジ打ちしかできなかったあの頃を思えば圧倒的成長。
記憶が風化してしまわない内に、技術メモ的なものを残しておく。

Struts2

言わずとしれたWebアプリケーションフレームワーク
今回の実装では、

  • ZeroConfigurationを使った画面遷移&パラメータ受け渡し
  • Struts標準タグを使った画面の実装
  • SpringFrameworkとの連携(struts2-spring-plugin)

あたりの技術を使っています。 スキルの棚卸的な観点としては、

あたりも押さえておくべきなんだけど、今回は見送り。
ZeroConfigutation周りとか結構忘れていて、最初の画面遷移でかなり時間を使ってしまった……。どのサイトもスペルミスやら誤字やら多いので参考URLはなし。

SpringFramework

こちらも有名なWebアプリケーションフレームワーク
フレームワークとしてカバーしてる範囲が非常に広くて、SpringMVCとか、SpringBootとか、そもそも使ったことないものも多いんだけど、今回は以下を使用。

  • DI(Dependency Injection)
  • SpringSecurityを使ったログイン認証

ちょっと見ない内にメジャーバージョンが変わっていて(2.x系を使ってたんだけど今回は4.x系を使用)、SpringSecurityの記法がガラッと変わってしまったためかなり手こずった。

javatechnology.net

棚卸的にはSpringBatchを使ったバッチアプリケーションの実装をやるべきなんだけど、作るべき部品が多すぎるので断念。

MyBatis

バリバリ使ってたORM。バリバリ使ってたのであんまり困らなかった。

  • Mapperファイルを活用して生SQLをベタ書き
  • SqlSession使ってJavaから呼び出し
  • SpringFrameworkとの連携

あと、こちらもちょっと見ない内にmybatis-springなるプラグインが登場していてびっくりした。少し試してみたんだけど、MyBatisとSpringFrameworkの連携が簡単に書けてしまって、オレオレWrapperが横行していた頃を思うと隔世の感があるなと思う。

mybatis-spring – MyBatis-Spring | イントロダクション argius.hatenablog.jp

動的SQLとかのトピックはスルーしたけど、一通りCRUD書いたので割と満足。

MySQL

DB周りはOracleが本業なんだけど、ちょっとした実装のためにわざわざ用意するのはだるかったので、MySQLに挑戦。Oracleしかやってこなかった身からすると「DBの構築ってこんなに簡単で良いの?!」という気持ち。Mac上でも難なく構築できました。

qiita.com

Bootstrap

気持ちをなだめるための実装とはいえ、ある程度画面が綺麗じゃないと気分が乗らないので、Bootstrapも導入。CSSやデザインが苦手でもカッコいいページが作れて良い。

getbootstrap.com

サンプルも充実しているので、今回の実装ではBootstrap themeとSign-in pageの大部分を参考にさせてもらった。

Eclipse

少し調べてみると、MacEclipsePleiadesを導入するのは超ハイパーメディア難しいようです。重くなるのは嫌だけど、おとなしくPleiades All in Oneを利用することにします。

qiita.com

完成

そうこうしている内に完成したので画面イメージを載せておきます。
ログイン画面
f:id:gushernobindsme:20170408233935p:plain

一覧表示画面
f:id:gushernobindsme:20170408233942p:plain

余力があれば、AWS上に構築して触れるようにしたりしたい。