[TIL]3月9日


プロファイルの表示とメンバー情報の変更のページエラー
→getId()メソッドが存在しない理由
Userクラスではidのsetterは存在しないようですが、getterは存在しなければなりません.getterが不足してid値を取得できなかったためのエラー

@Entity


エンティティ
エンティティは、テーブルに対応するクラスです.
spring-boot-start-data-jpa依存性を追加し、@Entityを追加するとテーブルとクラスがマッピングされます.
エンティティはクラスを表す場合があり、インスタンスを表す場合があります.エンティティークラス、エンティティーインスタンス、およびエンティティーオブジェクトと呼ばれます.
エンティティーマネージャ
エンティティ・オブジェクトの管理
エンティティーマネージャは、管理するエンティティーオブジェクトをPersistence Contextに配置し、オブジェクトのライフサイクルを管理します.
永続化コンテキスト
JPAエンティティオブジェクトを格納するスペース
@Autowiredをフィールド注入として使用するのではなく、コンストラクション関数注入を使用します.
スプリング-作成者注入を使用する必要があるのはなぜですか。フィールドオブジェクトが悪いのはなぜですか。
@Autowiredを使用するフィールドに作成者を入力することを推奨する理由
私もこの文章を読んだことがありますが、実は意味が完全に理解されていませんが、クーパーのprコメントを見て、生成者注入がもっと良いことに気づいたので、変わりました.
上のブログでそれを知りました.
  • ジェネレータ注入の利点
  • 依存関係が設定されていない場合、オブジェクトを作成できない→NullPointerception
  • を防止する.
  • 注入するフィールドを最終的に宣言することができる→可変
  • は、循環参照
  • を検出することができる.
    多くのサービス間で依存関係が生じる可能性があり、フィールド注入やsetter注入ではオブジェクト生成点にループ参照が発生しているかどうか分からないため、生成者がより良いコンテンツを注入しているのも見えますが、これは私にはまだ理解しにくい内容なので、このようにスキップしました.

    @Controllerの役割


    次のブログを参照し、ModelAndViewクラスにアクセスしてソースコードを確認してください.
    [Sping-@Autowired,@Service,@Repository構造]

  • コントローラロールコントローラロール:サービスとビューの仲裁者

  • ModelAndViewは仲裁者です

  • addObject()を使用してビューに変数をマッピングする
    ModelAndView addObject(String attributeName, 
    				@Nullable Object attributeValue) {
    	getModelMap().addAttribute(attriuteName, attributeValue);
    	return this;
    }

  • setName View()に出力するビューを設定

  • ModelAndView作成者のパラメータとしてビュー名を設定する
    →LUCASのコードでこのメソッドを使用する
    @GetMapping("/{id}")
    public ModelAndView show(@PathVariable Long id) {
        ModelAndView modelAndView = new ModelAndView("/user/profile");
        modelAndView.addObject("user", userRepository.findById(id).orElseThrow(NullPointerException::new));
        return modelAndView;
    }
  • 今日やったこと

  • 一人で勉強しているとき、知らないことが多すぎて、できるだけ早く任務を実現しなければならない焦燥感を加えて、正確な推測をしないで、ビデオとLUCASのコードについて走るだけで、メンバーたちとコード評論をするときは、まずPR投稿者のコメントを見て、私のコードがどのように改善されるかを見てみましょう.気になる部分ですが、勉強を遅らせる機会になりました.
  • エンティティがテーブルに対応するオブジェクトであることがわかりました.すべてのプロパティに@columnコメントを付けるべきだと勘違いしていますが、@Entityクラスのすべてのインスタンス変数はcolumnなので、column名を指定したり寸法を追加したりするなどの制約条件を指定した場合にのみコメントを追加できます.
  • build.gradleに依存性を加えたとき、compile、implementation、runtimeOnlyの3つの違いが気になったので調べてみましたが、よく理解できずスキップしました.フィロは大体説明したので、それらの違いを大体理解しました.
  • コントローラの役割を学びましたが、明確な動作はまだ分かりませんが、ModelAndViewの機能を知りました.
  • Todo


    コードの改良
  • 問題類は書く時間を
  • 増加した.
  • データベースからオブジェクトをインポートする場合、get()の代わりに何を使用するか分かりません.
  • パスワードが一致するかどうかを確認するタスク
  • を追加します.