티스토리 뷰
Spring 어노테이션 정리
Spring MVC
@MVC
- 어노테이션을 중심으로 한 새로운 MVC의 확장 기능은 @MVC라는 별칭으로도 불린다 (= 어노테이션 기반 MVC)
@Controller
- 해당 클래스가 Controller Bean 임을 지정한다.
@RequestMapping
- 처리할 요청 URL을 지정한다.
- 실제 요청 URL 은 class의 @RequestMapping값과 메서드의 @RequestMapping값의 조합으로 지정된다.
@RequestMapping(value="/article/form",method="RequestMethod.GET") @RequestMapping(value="/article/write",method="RequestMethod.POST")
@PathVariable
- URL에 {}로 들어가는 패스 변수를 받는다
- URL의 특정위치에 파라미터 값을 넣게 하면, 이해하기 쉬운 URL을 만들 수 있다. (RESTFull)
@RequestMapping(value = "/article/view/{articleId}", method = RequestMethod.DELETE) @ResponseBody public ModelAndView view(@PathVariable(value = "articleId") int articleId) { articleBO.getArticle(articleId); .. }
@RequestParam
- 단일 HTTP 요청 파라미터의 값을 메소드 파라미터에 넣어주는 어노테이션이다.
- 해당 파라미터가 반드시 있어야 한다. 없다면 HTTP 400 - Bad Request를 받게 된다
- 파라미터를 필수가 아니라 선택적으로 제공하게 하려면, required 엘리먼트를 false 로 설정한다
public String view(@RequestParam("id") int id) { .. } public String view(@RequsetParam(value="id", required=false, defaultValue="-1") { .. }
- @RequestParam 에 파라미터 이름을 지정하지 않고 Map<String,String>타입으로 선언하면 모든 요청 파라미터를 맵으로 받을 수 있다
public String add(@RequestParam<String, String> params) { .. }
@ModelAttribute
- 요청 파라미터를 Object(모델객체) 형태로 Controller에서 전달 받을 수 있다.
@RequestBody
- http의 Body를 그대로 전달한다.
- xml, json 기반의 메시지를 사용하는 경우 유용하다.
public void message(@RequstBody String body) { ... }
@Valid
- 요청된 파라미터를 모델 클래스에 셋팅하면서 해당 값에 대한 유효성 체크를 함께 할 수 있다.
- JSR-303의 @javax.validation Valid 애노테이션 사용
@CookieValue
- @CookieValue를 이용하여 쿠키값을 얻어 올 수 있다.
- @CookieValue을 메소드 파라미터에 추가하면 쿠키값을 바인드하여 넘겨준다.
@RequestMapping(value = "/write", method = RequestMethod.POST) public ModelAndView write(@Valid Article article, BindingResult result, @CookieValue(value = "LOGIN_KEY", required = false) int empno) { ... }
Spring
@Scope
- Spring 에서 관리하는 Bean은 싱글턴 상태가 디폴트이다.
- 디폴트 및 singleton : 싱글턴으로 객체를 한개만 생성
- prototype : 사용자 요청별로 별개의 객체를 생성해서 할당
@Autowired
- Bean의 자동삽입을 위해 사용하는 애노테이션이다.
@Service
- 해당 클래스가 Service Bean 임을 지정한다.
@Repository
- 해당 클래스가 Repository Bean 임을 지정한다.
반응형
'FULL STACK > SPRING &EGOV' 카테고리의 다른 글
스프링 한글깨짐 방지 (0) | 2018.12.21 |
---|---|
web.xml의 ContextLoaderListener (0) | 2018.12.18 |
스프링 시큐리티 (0) | 2018.12.13 |
게시판 테이블 엑셀로 변환 (0) | 2018.12.13 |
log4j2 (0) | 2018.12.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- scroll
- Slick
- Sliding
- css
- 반응형
- html
- js scroll
- defer
- sliding scroll
- getBoundingClientRect
- JS
- FontAwesome
- JavaScript
- Javscript
- fontawesome 4.7
- jQuery
- fontawesome 4.7 cdn
- jQuery CDN
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함