Closed29

Spring解体新書第二版ハンズオンメモ

okapontaokaponta

eclipseではなくIntelliJで進める。
SpringBootのバージョンも2.7.0で進める。
Javaのバージョンは17。

okapontaokaponta

6章のlogin.htmlなどの
<label for="userId" class="sr-only">userId</label>
がinvalid id referenceとIntelliJから怒られている。いったん動くので無視

okapontaokaponta

6.1.2でmessages.propertiesから値が読み込まれなくて困っている

okapontaokaponta

NG : <label for="userId">"#{userId}"</label>
OK : <label for="userId" th:text="#{userId}"></label>

okapontaokaponta

IntelliJのpropertiesファイルがUTF-8で開かれていなかった
Editor > File Encodingsから設定

okapontaokaponta

MyBatisのInvalid bound statement (not found):
でめっちゃ詰まった。
mybatis.mapper-locations=classpath*:/mapper/h2*.xml

mybatis.mapper-locations=classpath*:/mapper/h2/*.xml
にして解決

okapontaokaponta

まあ、スーパー面倒だったので公式でサポートされない限りはおとなしくPOJOでやるのがいいと思う

okapontaokaponta

8.3.2でDepartmentにうまくマッピングできずに困っていた。
NG: <select id="findOne" resultType="MUser">
OK: <select id="findOne" resultMap="user">

okapontaokaponta

WebSecurityConfigurerAdapterがDeprecatedになってるので新しい書き方で書いてみる

okapontaokaponta

インメモリ認証はすんなりできたけどユーザーデータでの認証に超手こずっている。
おそらく、JDBC認証にしなきゃいけなくて認証の仕組み大きく変えなきゃ動かなそう。

okapontaokaponta

雑感

  • たしかに、SpringBoot使えば素早くいい感じのアプリが作れるなぁと思った
  • 本自体は結構いい感じの構成だったと思う。基本的にはハンズオンでサクサク進められた。
  • MyBatisとかapplication.propertiesとか、ModelMapperとか一部名前解決してるので何が間違ってるのかがパッとわからなくて苦労した。
    • 最初は面倒かもしれないけど、ModelMapperなんかはきちんと自前で実装した方がいいかもと思った。特にプロダクションコード。
    • プロトタイプとかならいいかも
  • Springはバージョンアップで結構大きく変更入る
    • SpringSecurityとかは特に大きな変更で結構大変だった。
  • jQueryとかデバッグ大変そう。マジで写経になってた。
  • thymeleafを使ったhtmlテンプレート使った実装もわりかしデバッグしんどそう。typoに苦しめられた。
このスクラップは2022/06/13にクローズされました