회원가입, Insert 구현

//user.xml
<insert id="save">
 		INSERT INTO user(username, password, email)
 		VALUES (#{username}, #{password}, #{email})
</insert>
public interface UserRepository {

	public void save(User user);
	
}
@GetMapping("/join")
	public String joinPage() {
		
		return "user/joinForm";
	}
	
	@PostMapping("/joinProc")
	public String joinProc(User user) {
		System.out.println("joinProc 실행" + user);
		userRepository.save(user);
		
		return "home";
	}

viewResolver를 잘못쓰고 있음

@PostMapping("/joinProc")
		public @ResponseBody String joinProc(User user) {
			System.out.println("joinProc 실행" + user);
			User username = userRepository.findByUsername(user);
			if(username != null) {
				return Script.back("아이디가 중복되었습니다.");
				
			} else {
				userRepository.save(user);
				return Script.href("회원가입이 완료되었습니다.", "/login");
			}	
		}

여기서도 user 전체를 가져오면 안되고 username만을 가져와야 한다.

public User findByUsernameAndPassword(User user);
	
public User findByUsername(String username);

광열햄한테 물어보기. 회원가입 로직. 약간 다름

// 회원가입
	@PostMapping("joinProc")
	public @ResponseBody String joinProc(User user) {
		
		User principal = userRepository.findByUsername(user.getUsername()); // 여기에 user.getUsername()와 
		
		if(principal != null) {
			return Script.back("아이디가 중복입니다.");
		}
		
		userRepository.save(user);
		
		principal = userRepository.findByUsername(user.getUsername()); // 밑에 user.getUsername() 값 같지 않음?
		
		if(principal != null) {
			return Script.href("회원가입에 성공하였습니다.", "/login");
		} else {
			return Script.back("회원가입에 실패하였습니다.");
		}
	}