Spring MVC

Spring Annotation 정리

k9e4h 2016. 10. 7. 16:11

@RequestMapping

 

 

@RequestBody

Client에서 전송한 XML, JSON 데이터를 컨트롤러에서 DOM 객체나 Java 객체로 변환해서 받을 수 있는 기능

HTTP Request의 Body를 Java Object로 변환

@RequestMapping에 의해 전송된 HTTP Request 데이터를 지정된 타입의 파라미터로 전달

 

 

@ResponseBody

Java Object를 HTTP Response Body로 변환

@RequestMapping 메서드에 @ResponseBody가 적용되면 해당 메서드의 return value를 HTTP response 데이터로 사용한다.

 

 

@WebFilter 

특정 URL로 request가 들어오면 거치는 필터

 

 

@WebListener

web.xml에 등록하지 않고 자동으로 실행하게 한다.

we.xml의 listener와 완전 동일한 기능

 

@WebServlet

urlPattern 속성을 값으로 갖는데 이 속성은 해당 서블릿과 매핑될 URL 패턴을 지정한다.

 

 

@RestController 동작 과정

https://daehwann.wordpress.com/2014/07/14/building-a-restful-web-service/

 

@RestController와 @Controller의 차이점

http://doublesprogramming.tistory.com/105 

@Controller의 주용도는 view(화면)을 리턴하는 것이고, @RestController는 데이터를 리턴하는 것이 주용도하고 할 수 있다. 물론 @Cotroller의 경우 메서드에 @ResposeBody를 사용하여 객체를 리턴할 수도 있다.

 

  • @Controller is used to mark classes as Spring MVC Controller.
  • @RestController is a convenience annotation that does nothing more than adding the @Controller and @ResponseBody annotations (see: Javadoc)

http://stackoverflow.com/questions/25242321/difference-between-spring-controller-and-restcontroller-annotation

https://dzone.com/articles/spring-framework-restcontroller-vs-controller

 

 

@PathVariable

get을 쓸때 url parameter를 변수로 바로 지정 가능함

http://javabeat.net/pathvariable-template-patterns-spring-mvc/

 

FilterChain 참고

http://wildpup.cafe24.com/archives/596

http://javacan.tistory.com/entry/58

 

 

@FrameworkEndpoint - controller와 비슷한 역할

 

@FrameworkEndpoint라는 SpringSecurity에서 생성한 인터페이스 기반으로 Endpoint를 조회해서 requestMapping을 등록하는 역활을 한다.
즉 @FrameworkEndpoint를 붙혀주면 해당 클래스는 FrameworkEndpointHandlerMapping를 통해서 controller와 같이 동작한다고 보면 된다.

기존에 라이브러리에서 제공되는 FrameworkEndpoint의 리스트는 여러개 있음

 

[출처] http://longbe00.blogspot.com/2016/12/spring-security-oauth-20.html

 

@SessionAttributes("~~~")

HttpSession에 저장되어 있는 파라미터 값을 Handler의 매게변수에 mapping해주는 역할

 

@EnableRabbit

 

@Component

Spring에서 관리되는 객체임을 표시하기 위해 사용하는 가장 기본적인 annotation이다. 즉, scan-auto-detection과 dependency injection을 사용하기 위해서 사용되는 가장 기본 어노테이션이다.

 

@Controller

Web MVC 코드에 사용되는 어노테이션이다. @RequestMapping 어노테이션을 해당 어노테이션 밑에서만 사용할 수 있다. 

@Repository

data repository를 나타내는 어노테이션이다. @Repository는 플랫폼 특정 exception을 잡아 Spring의 unchecked exception으로 뱉어내준다. ( PersistenceExceptionTranslationPostProcessor )

@Repository @Mapper

[BE/Spring] @Repository 와 @Mapper 비교하기 (tistory.com)

 

[BE/Spring] @Repository 와 @Mapper 비교하기

2021.03.12 2일차 입사 5일차. 회사에서 이미 운영중인 스프링 프레임워크 기반 장비/자재 관리프로그램으로 기본소양 테스트를 진행했다. 스프링 프로젝트를 다루는 데는 자신있었지만 생각지도

limreus.tistory.com

 

@Service

비즈니스 로직이나 respository layer 호출하는 함수에 사용된다. 다른 어노테이션과 다르게 @Component에 추가된 기능은 없다. 하지만 나중에 Spring 측에서 추가적인 exception handling을 해줄 수도 있으니 비즈니스 로직에는 해당 어노테이션을 사용하자.

 

https://happyer16.tistory.com/entry/Spring-annotation-ServiceControllerComponent-%EC%B0%A8%EC%9D%B4

 

Spring annotation - @Service,@Controller,@Component 차이

Spring Documentation Spring 문서를 보면 역할에 맞게 쓰라고 되어 있는데 무엇이 차이인지 정확히 모르겠다. 그래서 조금 더 자료를 찾아봤다. @Component Spring에서 관리되는 객체임을 표시하기 위해 사

happyer16.tistory.com

 

 

2021.01.21 업데이트

 

@Configuration

Spring IoC Container에게 해당 클래스를 Bean 구성 Class임을 알려줌

 

@Bean

Spring Container에 Bean을 등록하도록하는 메타데이터를 기입하는 애노테이션

 

반응형

'Spring MVC' 카테고리의 다른 글

Spring Batch  (0) 2019.01.18
Spring Transaction 관련  (0) 2016.11.30
[#1] spring 개요  (0) 2016.05.03
SpringMVC 분석  (0) 2016.04.28
[#2] Spring 기초  (3) 2016.03.22