# 1. 스프링 애너테이션이란?
(1) 스프링 애너테이션(Annotation)
- 기존에 XML에서 하던 빈 설정을 애너테이션을 이용해서 자바 코드에서 설정하는 방법
- 기능이 복잡해짐에 따라 XML에서 설정하는 것보다 유지 보수가 유리하다
- 현재 애플리케이션 개발 시 XML 설정 방법과 애너테이션 방법을 혼합해서 사용한다.
(2) 스프링 애너테이션 제공 클래스
- 브라우저 URL 요청 처리 애너테이션 관련 클래스
클래스 | 기능 |
DefaultAnnotationHandlerMapping | 클래스 레벨에서 @RequestMapping을 처리합니다. |
AnnotationMethodHandlerAdapter | 메소드 레벨에서 @RequestMapping을 처리합니다. |
(3) <context:component-scan> 태그 기능
- 이 태그를 사용해 패키지 이름을 지정하면 애플리케이션 실행 시 해당 패키지에서 애너테이션으로 지정된 클래스를 빈으로 만들어 준다
- 사용형식 : <context:component-scan base-package="패키지 이름" />
- 여러가지 스테레오 타입 애너테이션
애너테이션 | 기능 |
@Controller | (스프링 컨테이너가 component-scan에 의해 지정한 클래스를) 컨트롤러 빈으로 자동 변환합니다. |
@Service | (공통) 서비스 빈으로 자동 변환합니다. |
@Repository | (공통) DAO 빈으로 자동 변환합니다. |
@Component | (공통) 빈으로 자동 변환합니다, |
- component-scan 사용 예제
# 2. 메소드에 @RequestParam 적용하기
(1) @RequestParam
- 매개변수의 수가 많아지면 일일이 getParameter() 메소드를 이용하는 것은 불편하다
- @RequestParam을 메소드에 적용해 쉽게 값을 얻을 수 있다.
- RequestParam 예제
더보기
(1) form 태그를 통해 요청을 보내고
(2) RequestMapping 애너테이션을 이용하여 Request를 처리한다.
(2) @RequestParam의 required 속성 사용하기
- @RequestParam 적용시 required 속성을 생략하면 기본 값은 true이다
- required 속성을 true로 설정하면 메소드 호출시 반드시 지정한 이름의 매개변수를 전달해야된다. (매개변수가 없으면 예외 발생)
- required 속성을 false로 설정하면 메소드 호출 시 지정한 이름의 매개변수가 전달되면 값을 저장하고 없으면 null을 할당한다.
- required = false
더보기
required 속성을 명시적으로 false로 설정한다.
(3) @RequestParam 이용해 Map에 매개변수 값 설정하기
- 전송되는 매개변수의 수가 많을 경우 Map에 바로 저장해서 사용하면 편리하다
- Map 이용하기
(4) @ModelAttribute 이용해 VO에 매개변수 값 설정하기
(5) Model 클래스 이용해 값 전달하기
Model 클래스
- Model 클래스를 이용하면 메소드 호출 시 JSP로 값을 바로 바인딩하여 전달 가능
- Model 클래스의 addAttribute() 메소드는 ModelAndView의 addObject() 메소드와 같은 기능 수행
- Model 클래스는 따로 뷰 정보를 전달할 필요가 없을 때 사용하면 편리함.
(6) @Autowired 이용해 빈 주입하기
- setter를 사용할 필요가 없어졌다.
- @Autowired 를 이용해 빈 주입
# References
- 자바 웹을 다루는 기술
'Web > Spring' 카테고리의 다른 글
[ Spring ] ⑦ 메이븐과 스프링 STS (0) | 2019.08.13 |
---|---|
[ Spring ] ⑤ 스프링 JDBC 기능 (0) | 2019.08.02 |
[ Spring ] ④ 스프링 MVC 기능 (0) | 2019.08.01 |
[ Spring ] ③ AOP (0) | 2019.08.01 |
[ Spring ] ② DI와 IoC (0) | 2019.08.01 |