validation aop사용에 대해서 질문있습니다.
245
投稿した質問数 42
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler(BindException.class)
public ApiResponse<Object> bindException(BindException e) {
이런식으로 전역적으로 validation을 해주면 aop를 사용하지 않고 더 편하고 어노테이션도 안달아줘도 될거같은데 aop를 사용하면 장점이 무엇인가요?
回答 2
1
@ExceptionHandler(BindException.class)
public String exBind(BindException e) {
for (FieldError error : e.getFieldErrors()) {
return Script.back(error.getDefaultMessage() + " : " + error.getField());
}
throw new Exception500("알수없는오류");
}@PostMapping("/login")
public String login(@Valid UserRequest.LoginDTO loginDTO) {
User sessionUser = userService.로그인(loginDTO);
session.setAttribute("sessionUser", sessionUser);
return "redirect:/board";
}위와 같이 처리하셔도 됩니다.
본 강의에서는 AOP를 교육한다고 생각하시면 되요!!
저도 ExceptionHandler로 처리해야 한다는 생각을 한번도 해보지 못했어요!!
좋은 질문 감사드립니다 ㅎ
0
안녕하세요, 인프런 AI 인턴입니다.
AOP(Aspect-Oriented Programming)를 사용하는 장점 중 하나는 코드의 재사용성을 높일 수 있다는 것입니다. 특정 작업을 위해 공통적으로 사용되는 코드를 분리하여 관리할 수 있기 때문에, 같은 기능을 필요로 하는 다른 부분에서도 쉽게 재사용할 수 있습니다. 예를 들어, validation 로직을 여러 컨트롤러나 서비스에 걸쳐 일관되게 적용해야 할 경우, AOP를 사용하면 해당 로직을 중앙에서 관리하면서 필요한 곳에 적용할 수 있습니다. 이로 인해 코드의 중복을 줄이고, 유지 보수성을 향상시킬 수 있습니다.
또한 AOP를 사용하면 비즈니스 로직과 관심사를 분리할 수 있습니다. 즉, 비즈니스 로직 코드에 섞여 있을 수 있는 보안, 로깅, 트랜잭션 관리 같은 부수적인 기능을 분리해 관리할 수 있으므로, 비즈니스 로직의 가독성과 순수성을 유지할 수 있습니다.
@ExceptionHandler를 사용하는 접근 방식이 특정 상황에서 더 직관적이고 편리할 수 있지만, AOP를 활용함으로써 얻을 수 있는 장점들이 있으므로, 프로젝트의 요구 사항과 구조에 따라 적절한 방법을 선택하는 것이 중요합니다.
요청/응답 DTO 관련 문의
0
170
2
안녕하세요 인증이 필요한 url을 위하여 /s를 붙이는것에 대해 질문있습니다.
0
161
1
Dummy 클래스 위치에 대한 질문
0
293
2
테스트 방식에 관해서 질문이 있어요
0
292
2
스프링 버전업일 경우에는 Pointcut @PostMapping 조건이 달라질까요?
1
434
1
equals와 longValue 관련 질문드립니다
0
329
1
계좌번호를 Long 타입으로 하는 이유가 무엇일까요?!
0
499
2
[정보공유] Hibernate 로그 작동 안하시는 분들!!
3
346
0
UserControllerTest 테스트 실패 문의
0
318
1
스프링 시큐리티 6.2 버전 이후로 apply() 메서드를 이용한 JwtAuthenticationFilter 가 등록이 안됩니다.
2
1107
1
import 오류
0
427
3
spring initializer gradle 에서 3.x.x 대 밖에 없어요. 2.x.x는 보이지 않는데 어떡하져
0
438
2
안녕하세요 로그엔 성공적으로 들어온것같습니다..
0
237
1
JwtAuthorizationfilter test mvc.performget 관련 질문입니다!
0
287
1
JwtAuthorizationfilter test mvc.performget 부
0
226
1
longValue() 질문
0
228
1
jwt 인가필터 규현및 등록
0
334
1
스프링부트 3버전
1
334
1
권한처리를 위한 세션강제주입
0
418
1
JwtVO 를 인터페이스로 만든 이유
0
359
1
계좌 조회 질문드립니다
0
229
1
DummyObject 에 대하여
0
308
2
DTO를 이너클래스로 계속추가하는 이유
0
695
2
Builder 사용 궁금
0
404
1

