ブログ&ニュース BLOG&NEWS

BLOG グリーンウェイズの日常

ARCHIVES: 2021年 10月

Springboot+Thymeleafの個人的に詰まったところ

はじめまして、東京オフィスのたまです。

初めてのブログ更新で何を書くべきか困っていましたが、個人的な備忘録も兼ねて、研修で行ってきたSpringbootのことを書いていきたいと思います。

環境は、Springboot+Thymeleafで、DAOに任せて複雑なSQLは使わない内容でした。

誰得な記事になりそうですが、よろしくお願いします。m(__)m

 

JpaRepositoryとRepository

JpaRepository

・インターフェースとして作成

・アノテーションはなし。

・継承時にエンティティの型を指定するので、SpringとRepositoryの橋渡し的な役割。

・Specificationを使うときは、JpaSpecificationExecutorを継承させておく。

Repository

・クラスとして作成

・@Repositoryをクラスに付ける。

・@AutowiredでJpaRepositoryの子インターフェースを呼び出す。

・Serviceクラスからこちらで実装したメソッドを呼び出す。

 

上記の2つは作成する時にクラスとインターフェースを取り違えやすく、何度も既存プロジェクトを参考にして作成したりしていました。

どちらも今回の研修では、ほとんどコードを書かないクラスでした。

 

Service

アノテーション:@Service

主なロジックを担当するクラスで、データのやり取りから整形までこなし、一番ステップ数が増えやすいクラスだと思います。

・Specificationで検索条件の列を指定するときは、エンティティの変数名を渡すこと。

↑が一番厄介な仕様でした。よくよく考えてみれば、Entityで対象のカラムを変えることもあるので、管理のしやすさからこうなっているのだと思います。

 

Controller

アノテーション:@Controller

画面遷移と表示内容を制御するクラス。

Formクラスを使ってバリデーションの結果を返す時は、BindingResultを引数に追加するのを忘れないように。

 

FormとValidationMessages.properties

Form

・数値型に@Sizeは使えない。

・バリデーションメッセージをプロパティから読み込むときは”{}”で括ること。

ValidationMessages.properties

・キー名は.(ピリオド)で区切る。他の記号を使うとエラーが出ることもあるので要注意。

・文字コードを指定できるエディタを使うようにしましょう。

ここまでは他のフレームワークでアノテーションベースのものを使っていた人はすんなりといけると思います。

 

SpringSecurity

SecurityConfigのアノテーション:@EnableWebSecurity

Handlerのアノテーション:@Component

この研修で一番の問題児でした。が、研修直後のレベルで業務上これを扱うことはないと思っています。

基本的な構造はSecurityConfigに認証が必要なページとそうでないページを紐づけてログイン画面を表示させ、SuccessHandlerとFailureHandlerでログイン成否の処理を分けます。

認証にDBの情報を使う場合は、

・認証用EntityにUserDetailsをimplementsする。

・ServiceクラスにUserDetailServiceをimplementsしてloadUserByUsername()をオーバーライドしておきます。

(必然的にRepositoryにもfindメソッドが必要です)

認証成功時、失敗時ともにリダイレクトで次のページに遷移した方が、実装は簡単だと思いました。

 

思っていたより全然書くことがなかったので、ついでにThymeleafの備忘録も書いておきます。

EL式

今までバックエンドの案件が多く、がっつりとjavascriptを触ることがなかったので条件分岐一つ取っても苦労しました。

th:if=””の中で”1 = ${1}”でも、”${1} = ${1}”でも、”${1 = 1}”でも動いてしまうので、漠然と怖い意識があります。

基本的には${hogehoge!=null && hogehoge!=””}と一つの{}内でできる限り書いた方が見やすく、論理和”||”などもできるのでお勧めです。

 

th:href

th:href=”@{${url}(from=${from}, to=${to})}”

これだけでリクエストパラメータをきちんと並べたURLが形成されるのは感動しました。URLエンコードのおまけつきです。すごい。

 

th:each

th:each=”item, stat : ${listItem}”

${item, stat : …}や${item, stat} : ${…}などと書かないように注意。

(EL式をよく触る人はしないミスかと思いますが、私はこれに時間を取られました。)

statはstat.indexで0スタート、stat.countで1スタートと、地味に便利。

 

以上が備忘録です。

どことなく感想が混じっていてこれを見て参考になる人がいるとは思えませんが、

私にはほのぼのとした日常系ブログは書けずこれが精一杯でした。

 

今は、これから入る案件のためにVue.jsを勉強しています。

やっぱりバリデーションはリアルタイムで画面が変わる方が親切ですよね。

次にブログを更新できる機会があれば、Vueについて書くかもしれません。

その時は、今回のような記事にならないようにしっかりと理解して要点をまとめておこうと思います。

たま先生の次回作にご期待ください!


お気に入りネイル紹介

みなさん、こんにちは☀️
大阪オフィスのぽよです!

今回ブログを書かせてもらうのは2回目で、
何について投稿しようか迷いに迷いましたが、わたしの日頃のモチベーションを保ってくれるネイルを紹介しようと思います🤗

興味を持ってくださる方、少ないかと思いますが読んでいただけると嬉しいです✨

わたしが初めてジェルネイルをしたのは、
大学4年生の卒業旅行へ行く直前です。

ずっと憧れだったイギリス🇬🇧への旅行で、自分史上最高のコンディションで行きたい😂という思いがあってジェルネイルをしました。その頃は、バイトの関係もあったので爪も短く、肌馴染みの良い可愛いピンク色にしてもらいました💅

 

(初めてのジェルネイルでテンションが上がっていた割に爪が写ってる写真がこれしかなかった😂)

それ以来、シンプルでもネイルをしているってだけでルンルン気分になれるので続けています😊

新社会人になってからは、新入社員なのにネイルしたらよく思われないかな、、、なんてビビりながらしてました🤣はじめはワンカラーでとってもナチュラルにしてたのですが段々デザインを付けていって「よし!何も言われない、大丈夫だ!」と味を占めて半年後には好き放題していました(笑)

という事で(?)ここからは今まででお気に入りだったネイルデザインをいくつか見てほしいです❣️

 

これはタートルネックを着れる季節になった頃にしたデザインです。寒くなってくるとクリーム色にしたくなるんですね〜お花も描いてもらって、爪先のゴールドがアクセントになっていて可愛いです。

 

(ちょっと伸びちゃってますが)これは、なかなか派手ではあるんですけどフレンチネイルの爪先にストーンを敷き詰めてもらいました🤭

これがまた手が動くたびにキラキラして、それが満足で手を見てはニヤニヤした記憶があります😂

 

そしてこれが最後!今しているネイルなのですがモもやもやのデザインです。ぜんぶもやもやのニュアンスが違ってとっても可愛いんです〜〜🤤薬指のゴールドの棒は欲張って付けてしまいました。。。別にいらなかったかも、なんて思ってますが可愛いのでOK👍

インスタグラムで色々なデザインを見ながら、次はこんな風にしよう!とスクショしています。わたしが好きなのは韓国のネイルデザインです!何故か惹かれるんですよね☺️

日々のモチベーションが何かは人によってそれぞれだと思いますが、すこしでも自分の気持ちが高められるものがあれば毎日充実しますよね😊これからも可愛い爪に満足しながらお仕事頑張ります💪

最後まで読んでいただいてありがとうございます!


大学時代の話

大阪オフィスのmと申します。

今回は私がまだ大学生のときのエピソードです。

当時私は某大学のサッカー部に所属しており、
いろいろな個性のメンバーと毎日を過ごしておりました。

その中にZという同期がいました。
彼はいわゆるイジられキャラで毎日のように先輩、後輩、同期、チームスタッフ問わず誰からもイジられる存在でした。

今回はそんなイジられキャラのZが起こした世にも奇妙な出来事についてお話ししたいと思います。

ある休日の午前、私が部活の練習を終え、着替えるためグラウンドから部室に戻ろうとすると、
Zとちょうど部室前で遭遇しました。

部活内でいくつかあるチームの中で私とZはチームが違ったので練習時間が違うのはまったく問題ないのですが、
私はZに対し違和感を覚えました。
彼が手ぶらだったからです。

彼になぜ荷物をもっていないのか尋ねると、
彼の顔は真っ青になり、「電車の乗り換えのときに忘れてきたかも、、」というのです。

私は「え?(笑)」と思いながらも、彼はカバンの中には財布やスマホも入っているとのことだったので、
私とその他の部員で手分けして駅の忘れ物センターに電話をし、探してもらうようにしました。
それと同時にZには帰宅しながら駅で荷物の捜索依頼をしてもらうことにしました。

2時間後、荷物とともにスマホをなくしたはずのZから電話がかかってきました。
財布とスマホに関しては、家に忘れていたようです。
カバンに関しては、家にはなかったそうです。

その後、全チームの練習が終わり、私とZの荷物を捜索していた数名以外は部室からいなくなりました。
練習後何も食べていなかった私たちは場所を大学の食堂に移そうということになり、部室を出ようとしたときです。
他に誰もいないはずの部室でなぜか1つカバンが残っているのです。しかも見覚えのあるやつが、、

仲間の1人が言いました。
「あれZとちゃう?」

「そんなわけ、、(笑)」と思いながらもカバンを開けてみると、
Zがよく着ている彼の高校時代の練習着(汗で半分発酵したやつ)が出てきました。( ゚Д゚)
彼は前日の夜の練習終わりからカバンを部室に忘れて帰っていたのです。

その数日後、Zは銀行への就職が決まりました。
やらかしていないか心配な今日この頃です。