Seasar2のeolに伴い、s2daoからdoma2に切り替えた話
コトゴトの開発を続けていく上で、Seasar2のサポートが2016年9月26日を以って終了。その移行先を求めて、以下の対応をとりました。
移行前 移行後 Controller Struts2 Struts2 DI Seasar2 Google guice DAO S2Dao Doma2
Controllerとして使っていた、Struts2はもともと変更する必要が無かったので、そのまま移行。
Seasar2のファミリーではなく、Struts2を利用していたので、ここだけは正直負担が軽減された。
DIの部分をフルスタックフレームワークに置き換えるかという選択肢もあったが、Springを使うにしても学習コストが高くなるため、マイクロサービス化していく方針にする。
Seasarもそうだが、フルスタックフレームワークは、バージョンアップ時の変更対応が全体に及ぶ危険性もありますからね。
Daoの部分が案外一番、置き換えの余波が大きくなるため、Seasar2の中でもEOLにならなかった。
S2Daoのスタイル(DAOパターンや2 Way SQL)を踏襲しているDoma2を利用する。
おかげでSQLファイルをある程度そのまま移行できたので、作り直しは発生せずにうまくできた。
その他の部分でS2Dxoをモデルマッパーとして使ってたので、こちらも置き換えが発生。
Apache Commons BeanUtilsを使ってEntityとDtoの変換をしてみると、Doma2ではjava.time.LocalDateTimeが使われていて、
今まではjava.sql.Timestampを使っていたため、変換エラーが多発。
この変換部分を自作で対応したりする必要がありました。null変換も対応したり。
seasar2の移行先ということで、世間的にはSpringに移行する流れが主流な気もしますが、それ以外の移行パターンもあったりするので、ご参考になればと思います。
Seasar2のeolに伴い、s2daoからdoma2に切り替えた話 was originally published on LivLog llc.