Springbootはなぜこんなことを?

6155 ワード

SpringBootで掲示板機能を実現

  • ドメインのUserクラス
  • 以下のコードを使用して会員入力機能をスクロールすれば正常に動作し、
  • package com.codessquad.qna.domain;
    
    public class User {
    
        private String userId;
        private String password;
        private String name;
        private String email;
    
    
        @Override
        public String toString() {
        //투스트링 메서드 생략
        }
        
        //게터세터 생략
    
    }
    

    しかし、不思議なことに、ドメインにコードを追加するとコントローラが見つかりません。

  • 独自のcopyConstructorを作ったら動作しない
  • package com.codessquad.qna.domain;
    
    public class User {
    
        private String userId;
        private String password;
        private String name;
        private String email;
    
        public User(User copyUser) {
            this.userId = copyUser.userId;
            this.password = copyUser.password;
            this.name = copyUser.name;
            this.email = copyUser.email;
        }
    
        @Override
        public String toString() {
        //투스트링 메서드 생략
        }
        
        //게터세터 생략
    
    }
    

    コンソールはこうです。

     @PostMapping("/usercreate")
        public String create(User user) {
            userList.add(user);
    
            return "redirect:/users/list";
        }
    

    ここで質問があります。domainにコンストラクション関数が追加された理由を知りたいのですが、java springは次のエラーメッセージを送信します。

    Whitelabel Error Page
    This application has no explicit mapping for /error, so you are seeing this as a fallback.
    
    Tue Mar 09 12:39:13 KST 2021
    There was an unexpected error (type=Internal Server Error, status=500).
    Failed to instantiate [com.codessquad.qna.domain.User]: Constructor threw exception; nested exception is java.lang.NullPointerException
    org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.codessquad.qna.domain.User]: Constructor threw exception; nested exception is java.lang.NullPointerException