Spring(Annotation, ExceptionHandler, Repository)

주8·2023년 3월 21일
0

WIL

목록 보기
14/19

기간
2023/3/13 ~ 2023/3/17

수업
실시간 ZOOM 수업


Day 14(Annotation)

@GetMapping(value = "/req/get", produces = MediaType.TEXT_HTML_VALUE)

@RestController
→ 가끔 Object가 리턴될 때 JSON 파싱 → MessageConverter
→ response.getWriter().println()

@Controller
→ ViewResolver
→ request.setAttribute(); → model.addAttribute(name,value);
→ request.getRequestDispatcher();
→ view를 리턴하지만 리턴타입을 ResponseEntity로 하면 @ResponseBody가 발동

return에 “redirect:~”을 하면 dispatcherServlet이 send.redirect함

Test 코드 작성
@WebMvcTest
→ Controller 이하 즉 Filter, DispatcherServlet, Controller, MockMvc를 로드

@SpringbootTest
→ Springboot에 관련된 모든 걸 로드


Day 15(Exception Handler)

DS는 RuntimeException(하위 예외 포함)만 처리함

델리게이트패턴, 프록시패턴


Day 16(Repository)

bean change
→ 상속해서 덮어씌우기

IoC 컨테이너가 빈을 관리
→ Controller 등의 빈을 직접 new해서 관리하는 게 아니라 스프링에서 리플렉션으로 관리
⇒ 참조값을 모른다? → DI로 관리

@Bean
해당 메소드의 리턴타입을 빈에 등록

DI를 할 때 필드주입으로 @Autowired하는 것과 생성자 주입(@RequiredArgsConstructor: final 필드 자동 주입)하는 것의 차이
→ 필드로 주입하면 리플렉션으로 찾아야 하니까 부하가 걸림

DB LOCK
: insert가 일어날 때 다른 쓰레드에서 update, delete, insert이뤄지지 않고(DML) select(DQL)만

데이터 변경: ACID
→ I(고립성)

profile
웹퍼블리셔의 백엔드 개발자 도전기

0개의 댓글