코린이의 기술 블로그
컨트롤러 본문
컨트롤러는 스프링 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 | 반환 타입 적지 않고 기본값으로 자동 생성 |
'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 |