기간
2023/3/13 ~ 2023/3/17
수업
실시간 ZOOM 수업
@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에 관련된 모든 걸 로드
DS는 RuntimeException(하위 예외 포함)만 처리함
델리게이트패턴, 프록시패턴
bean change
→ 상속해서 덮어씌우기
IoC 컨테이너가 빈을 관리
→ Controller 등의 빈을 직접 new해서 관리하는 게 아니라 스프링에서 리플렉션으로 관리
⇒ 참조값을 모른다? → DI로 관리
@Bean
해당 메소드의 리턴타입을 빈에 등록
DI를 할 때 필드주입으로 @Autowired하는 것과 생성자 주입(@RequiredArgsConstructor: final 필드 자동 주입)하는 것의 차이
→ 필드로 주입하면 리플렉션으로 찾아야 하니까 부하가 걸림
DB LOCK
: insert가 일어날 때 다른 쓰레드에서 update, delete, insert이뤄지지 않고(DML) select(DQL)만
데이터 변경: ACID
→ I(고립성)