728x90
반응형
SMALL
04/06
20강
Service에서 @Transactional (INSERT, UPDATE, DELETE)
@Column (unique = true) //제약조건
private String username;

전처리, 후처리 개념
username --------------> ⑴ㅣ 서버 ----- ⑵ㅣ DB ->
JPA
오류창
AOP(Aspect Oriented Programming)
관점지향프로그래밍
⑴ 전처리
유효성 검사
⑵ 후처리
exceptionhandler
⑵
회원가입을 할 시에 같은 username으로 가입을 하면 제약조건 위반 오류
ConstraintViolationException

길이 20의 제약조건 추가
@Column(length = 20, unique = true)

usname 길이 20 넘었을 경우
SQLGrammarException 오류
https://bamdule.tistory.com/35
Spring Boot @Valid
public String signup(@Valid SignupDto signupDto) {

프론트에서 막아도 Postman으로 요청을 할 경우 막지 못하므로 백엔드에서도 막아줘야함
@ResponseBody
Controller여도 데이터 반환
@PostMapping("/auth/signup")
public @ResponseBody String signup(@Valid SignupDto signupDto, BindingResult bindingResult) { //key=value (x-www-form-urlencoded)
if(bindingResult.hasErrors()) {
Map<String, String> errorMap = new HashMap<>();
for(FieldError error : bindingResult.getFieldErrors()) {
errorMap.put(error.getField(), error.getDefaultMessage());
System.out.println("=====================");
System.out.println(error.getDefaultMessage());
System.out.println("=====================");
}
}728x90
반응형
LIST
'Spring Boot > 인스타그램 클론코딩' 카테고리의 다른 글
| 연관관계 개념 (0) | 2022.05.27 |
|---|---|
| 세션 정보, 시큐리티 태그 라이브러리 (0) | 2022.04.18 |
| SecurityConfig, CSRF 토큰 (0) | 2022.03.30 |
| Spring Boot 쿼리스트링, 주소 변수 매핑, HTTP Header, HTTP 요청, 톰캣, JSP, Mustache, HTTP 상태코드 (0) | 2022.03.27 |
댓글