実現したいこと
@RequiredArgsConstructorの動きがよくわからないのでご教授いただきたいです。
前提
@RequiredArgsConstructorアノテーションをつけたメソッドではprivate finalを記述した
ものはその先のフィールドのコンストラクタが生成されるという認識です。
下記内容はprivate final をつけた先のクラスにフィールドが存在していません。
(22行目がprivate finalがついた部分で62行目から下が対象クラスになります)
なんのためにprivate finalをつけているのでしょうか??
お手数おかけしますがご教授お願いいたします。
該当のソースコード
Java
1 2@Controller 3@RequiredArgsConstructor 4public class LoginController { 5 6 private final LoginService service; 7 8 /** PasswordEncoder*/ 9 private final PasswordEncoder passwordEncoder; 10 11 @GetMapping("/login") 12 public String view(Model model,LoginForm form) { 13 return "login"; 14 } 15 16 @PostMapping("/login") 17 public String login(Model model,LoginForm form) { 18 //ログインIDが存在しているか確認 19 //serviceのserchUserByIdメソッドへID情報を渡し処理している 20 var userInfo = service.searchUserById(form.getLoginId()); 21 var isCorrectUserAuth = userInfo.isPresent() 22 && passwordEncoder.matches(form.getPassword(),userInfo.get().getPassword()); 23 if(isCorrectUserAuth) { 24 return "redirect:/menu"; 25 }else { 26 //TODO エラーメッセージはプロパティファイルで管理する 27 model.addAttribute("errorMsg","ログインIDとパスが間違っています"); 28 return "login"; 29 } 30 } 31} 32
package com.example.demo.repository; import org.springframework.data.jpa.repository.JpaRepository; import com.example.demo.entity.UserInfo; @Repository public interface UserInfoRepository extends JpaRepository<UserInfo,String> { }


回答1件
あなたの回答
tips
プレビュー