코린이의 기술 블로그

컨트롤러 본문

Java Web

컨트롤러

미늬온 2021. 11. 13. 22:43

컨트롤러는 스프링 MVC 설계 패턴 중 하나이며, 사용자가 구현을 하는 부분입니다.
사용자의 요청을 해석하고 모델과 뷰를 반환하는 기능을 가진 메서드입니다.

  • 사용자의 요청 해석
  • 요청에 대한 처리를 서비스 로직 등에 위임
  • 반환된 값으로 모델 생성
  • 뷰를 결정
  • 뷰와 모델 반환

@Controller 로 컨트롤러 임을 선언 @RequestMapping으로 요청 url 패턴 지정

컨트롤러 @어노테이션
어노테이션 ? 자바에서 사용될 때의 어노테이션은 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술입니다. 즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터(meta data: 데이터를 위한 데이터)라고 볼 수 있습니다.
선언과 패키지등의 소스코드에 삽입하여 사용, 소스 코드의 가독성을 높일 수 있다.
태그에 컨트롤러의 패키지 명을 선언해야 어노테이션이 선언

  • @Controller : 스프링 웹 MVC의 컨트롤러 선언, 클래스 타입 적용, 패키지 명 선언해야 컨트롤러를 자동으로 로딩
  • @RequestMapping : 컨트롤러와 매핑되는 url 패턴 정의, http등
  • @SessionAttribute : 세션 설정과 세션 유지

ⅰ. @Controller : 태그에 컨트롤러의 패키지명을 선언해야 어노테이션이 선언된 컨트롤러를 자동으로 로딩할 수 있다.
ⅱ . @RequestMapping : 문자열 url,http 메서드, params() 타입, header(), 메서드 레벨 와 매핑
ⅲ . @SessionAttributes("cmd") : 클래스 상단에 선언하여 세션으로 커맨드 객체를 저장하는 애너테이션
(1) @SessionAttributes에 지정한 이름과 동일한 것이 있으면 이를 세션에 저장. 뷰가 모델을 참조하여 form에 보이 는 기능
(2) @ModelAttribute가 지정한 파라미터가 있을 경우 오브젝트를 세션으로 가져 오는 것 입니다.
스프링 어노테이션

  • @Service : 자동 검색으로 빈에 자동 설정
  • @Reponsitory : DAO 역할, DB와 연동 데이터 검색, 입력, 수정 클래스를 빈으로 설정
  • Component : <context:component-scan> 태그로 클래스를 빈으로 자동 설정
  • @Autowired : 생성자, 메서드, 필드에 붙여 스프링에서 자동 주입
  • @Transactional : 자동으로 트랜잭션 제어하는 기능 제공
  • @Scope : 빈의 범위를 싱글톤이 아닌 request, session 등으로 설정

컨트롤러의 메서드 파라메타 종류

  • @RequestParam : 단일 HTTP 요청을 메소드에 전달.
  • @PathVariable : url 중괄호 {} path 변수를 @PathVariable로 받는 것 입니다.
  • @ModelAttribute : 컨트롤러에서 폼의 다수 데이터를 VO에 저장, insert()에서 @ModelAttribute 로 받는 것입니다.


컨트롤러 반환 타입

객체 반환 타입 설명
ModelAndView 뷰와 모델 정보를 모두 포함하고 있는 반환 타입
Model, Map, ModelMap 뷰에 전달 객체 정보만 포함하는 반환 타입
String 뷰만 반환 , JSP, HTML View 등 호출 할때 사용
View 뷰 직접 반환, 해당 뷰로 뷰 생성
void 반환 타입 적지 않고 기본값으로 자동 생성

728x90

'Java Web' 카테고리의 다른 글

기본 설정 순서 1  (0) 2021.11.22
스프링 웹 MVC  (0) 2021.11.14
스프링 AOP  (0) 2021.11.12
스프링 어노테이션  (0) 2021.11.11
의존 관계 / 생성자 인젝션 / Setter 인젝션  (0) 2021.11.10
Comments