스프링 핵심원리1

김찬희·2024년 3월 24일

Spring

목록 보기
1/6

스프링 웹 개발

정적컨텐츠

  • hello-static.html 작성 후 실행
  • 웹 브라우저-> 내장톰캣 서버 -> 스프링 컨테이너(hello-static)관련 컨트롤러X -> resource:static/hello-static.html-> 웹브라우저 hello-static.html 반환

MVC와 템플릿 엔진

  • MVC :Model, View, Controller
  • 이전 정적 컨텐츠와는 다르게 스프링 컨테이너 내 helloController 존재 -> hello-template 리턴 -> ViewResolver에서 템플릿 엔진 처리 후 HTML 반환

API

  • @ResponseBody를 사용하면 ViewResolver를 사용하지 않음
  • ResponseBody 문자 반환 - HTTP의 BODY에 문자 내용을 직접 반환, 객체 반환 - 객체가 JSON으로 변환됨
  • 기존의 ViewResolver 대신에 HttpMessageConverter가 동작

웹 애플리케이션 계층 구조

컨트롤러 -> 서비스 -> 리포지토리 -> DB

  • 컨트롤러,서비스,리포지토리는 모두 도메인에 접근함
  • 컨트롤러: 웹 MVC의 컨트롤러 역할
  • 서비스: 핵심 비즈니스 로직 구현
  • 리포지토리: DB에 접근, 도메인 객체를 DB에 저장하고 관리
  • 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리됨

DI(Dependency Injection)

  • constructor(생성자)에 @Autowired 가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다. 이렇게
    객체 의존관계를 외부에서 넣어주는 것을 DI (Dependency Injection), 의존성 주입이라 한다.

스프링 빈을 등록하는 2가지 방법

  • 컴포넌트 스캔과 자동 의존관계 설정
  • 자바 코드로 직접 스프링 빈 등록하기
  • @Component 에노테이션이 있으면 스프링 빈으로 자동 등록된다. @Controller,@Service,@Repository는 @Component를 포함하고 있다.

0개의 댓글