inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

모든 개발자를 위한 HTTP 웹 기본 지식

4xx - 클라이언트 오류, 5xx - 서버 오류

안녕하세요 이 코드는 잘못된건가요?

330

작성자 없음

작성한 질문수 0

0

RestController 가 있습니다
@PostMapping("/request")
	public ResponseEntity<> save(someDto dto) throws UnsupportedEncodingException, Exception {
		if(isAdmin()){
			return new ResponseEntity<>( 어드민이 아닙니다,HttpStatus.BAD_REQUEST);
		}
		try {
		        AService.save(dto.toEntity());   // 주문 생성
			BService.createEstimate(dto.toEntity());  // 견적 생성
		} catch (Exception e) {
			return new ResponseEntity<>(저장이 안되었다는 메세지,HttpStatus.BAD_REQUEST);
		}
		return new ResponseEntity<>(저장이 되었다는 메세지,HttpStatus.OK);
	}

AService입니다
@Transactional(rollbackFor = {Exception.class})
	public void save(Entity entity) throws Exception{
		entityRepo.save(entity);
	}

BService입니다
@Transactional(rollbackFor = {Exception.class})
	public void createEstimate(Entity entity) throws Exception {
		entityRepo.save(entity);
	}

위와 같이 rest controller에도 throw exception과 동시에 저장,견적 을 생성하는 서비스를 각각 호출합니다.(서로 다른 클래스)
그런데 그 서비스에도 다 throw exception을 하고 있습니다.
어노테이션으로 Transactional(rollbackFor exception)을 하고 있고요.
위와 같이 코드를 작성하는 방법은 틀린것인가요?

restcontroller network service

답변 1

1

David

안녕하세요. WON JONGPIL님, 공식 서포터즈 David입니다.
.

올려주신 코드만 보았을 때 아래 내부로직은 동일해보이는데, 굳이 동일한 일을 2번 해주시는 이유를 알 수 있을까요?

AService.save(dto.toEntity());

BService.createEstimate(dto.toEntity());

.

만약 동일한 로직이 아니라면 내부에 어떻게 동작하는지 구체적인 로직을 보여주셔야 조금 더 자세한 답변을 드릴 수 있을 것 같습니다.

.
감사합니다.

1

David

아, 그러셨군요.

ControllerAdvice에 대해 찾아보시면 예외를 깔끔하게 처리하고 응답할 수 있을 것 같습니다.

캐시 관련 질문입니다.

0

616

1

ETag 질문입니다.

0

727

1

캐시의 설정 주체

0

534

1

영속쿠키 질문입니다.

0

503

1

협상(accept-language)

0

686

1

에러 코드의 구현 주체

0

438

1

웹서버가 구현?

0

596

1

필수헤더?

1

560

1

Host와 Port

0

774

1

다른 도메인이 같은 포트를 사용하는 경우

0

1259

1

표준 헤더와 임의 헤더

0

534

1

POST 등록 후 Location 헤더

0

569

1

프로세스의 상태가 변경되는 경우에 Post 사용

1

1809

1

지속연결에 대해서.

0

692

1

제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.

0

593

1

캐시 내용중 no cache 일때

0

358

1

DNS 서버 관련 질문

1

748

1

캐시로 저장된 파일의 유효기간은 얼마나 되나요?

0

662

1

웹브라우저 요청흐름 질문입니다.

0

847

1

캐시 무효화 질문드립니다

0

561

1

리다이렉트와 리다이렉션 차이?

0

2595

1

쿠키 및 세션 관련 질문드립니다

0

586

1

HTTP 메서드 ( HTTP 메서드의 속성 파트 ) 강의의 멱등 내용에 대하여 질문드립니다.

0

1645

1

header 나 gzip으로 데이터 보낼떄 데이터는 base64로 인코딩되서 가는 건가요?

0

480

1