์ต์ด ์์ ๋ก๊ทธ์ธ ์, ๋๋ค์์ ์ ๋ ฅ๋ฐ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค ํ๋ค.
๋ง์ฝ ๋๋ค์์ด ์๋ค๋ฉด, ๋๋ค์์ ์ ๋ ฅ๋ฐ๋ ํผ์ ๋์ฐ์ง ์๋๋ค.
@PutMapping("/users/update")
public RedirectView updateUserInfo(@LoginUser SessionUser sessionUser, SetNicknameForm nicknameForm, BindingResult result) {
String nickname = nicknameForm.getNickname();
if (result.hasErrors()) {
System.out.println("form error");
return new RedirectView("/home");
}
userService.updateUserInfo(sessionUser.getId(), nickname);
sessionUser.updateNickname(nickname);
userService.reloadSessionUserInfo("user", sessionUser);
return new RedirectView("/home");
}
์์ ๊ฐ์ด ๋๋ค์์ ์ ๋ ฅ๋ฐ์ userRepository์ ๋๋ค์์ ์ ์ฅํ๊ณ sessionUser์๋ ๋๋ค์์ ์ค์ ํ๋ค.DB์๋ ์ ์ฅ๋ ๊ฒ์ ํ์ธํ๋ค.
๊ทธ๋ฐ๋ฐ ํํ๋ฉด์ ์ ์ํ๋ฉด ๊ณ์ ๋๋ค์์ ์ ๋ ฅ๋ฐ๋ ์ฐฝ์ด ๋ด๋ค..
๋ฌธ์ ๋ HttpSession์ ์์๋ค. ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ @LoginUser SessionUser sessionUser ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์์ค๋๋ฐ SessionUser๋ HttpSession์ ์ ์ฅ๋์ด ์๋ค. ์ ์ฝ๋์์ ๋ณ๊ฒฝ๋ sessionUser ์ ๋ณด๋ฅผ HttpSession์ ๋ฐ์ํด์ฃผ์ง ์์, ๊ธฐ์กด์ ๋๋ค์์ด ์๋ ์ฌ์ฉ์์ ์ธ์ ์ ๋ณด๊ฐ ์กฐํ๋ ๊ฒ์ด ๋ฌธ์ ์๋ค.
๋ฐ๋ผ์ HttpSession์์ ํด๋น ์ ์ ๋ฅผ ์ญ์ (remove)ํ ๋ค, ๋ค์ ์ ์ ๋ฅผ ์ค์ (set)ํ๋ ๋ก์ง์ ์ถ๊ฐํ๊ณ , ๊ธฐ๋ฅ์ด ์ ์์ ์ผ๋ก ์๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
public class UserController {
@PutMapping("/users/update")
public RedirectView updateUserInfo(@LoginUser SessionUser sessionUser, SetNicknameForm nicknameForm, BindingResult result) {
String nickname = nicknameForm.getNickname();
if (result.hasErrors()) {
System.out.println("form error");
return new RedirectView("/home");
}
userService.updateUserInfo(sessionUser.getId(), nickname);
sessionUser.updateNickname(nickname);
userService.reloadSessionUserInfo("user", sessionUser);
return new RedirectView("/home");
}
}
public class UserService {
public void reloadSessionUserInfo(String user, SessionUser sessionUser) {
// HttpSession์ ์ ์ ์ ๋ณด ์ฌ๋ก๋ฉ
httpSession.removeAttribute("user");
httpSession.setAttribute("user", sessionUser);
}
}
'Spring ๐ฑ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋์์ฑ ์ด์ ํด๊ฒฐํ๊ธฐ : synchronized์ @Transactional์ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ ์ด์ (0) | 2023.12.15 |
---|---|
๋์์ฑ ์ด์ ํด๊ฒฐํ๊ธฐ : synchronized์ saveAndFlush (0) | 2023.12.01 |
Dispatcher Servlet์ด๋? ๋์ ๋ฐฉ์๊ณผ ์ฅ์ (0) | 2023.09.25 |
[Spring JPA] Entity์ @Setter๋ฅผ ์ง์ํด์ผ ํ๋ ์ด์ (0) | 2023.07.27 |
[JPA] ์์์ฑ ์ปจํ ์คํธ (0) | 2023.07.25 |