-
[Spring boot] 어노테이션 정리SpringBoot 2022. 5. 17. 10:06반응형
@Controller
Spring MVC 컨트롤러를 표시하는데 사용된다.
bean으로 등록되며 해당 클래스가 controller로 사용됨을 Spring Framework에 알린다.
@RestController
@Controller + @ResponseBody
메소드의 반환 결과를 JSON형태로 반환한다.
API와 view를 동시에 사용하는 경우에 사용.
@Service
service로 사용되는 자바 클래스 파일에 사용된다.
CRUD에 관한 함수들로 구성되어 있는 Repository에서 사용하고자 하는 함수들
2개 이상을 서비스관련 자바 클래스파일로 가져와 하나의 트랜잭션으로 묶어서 구성된다.
@Repository
DB에 접근하는 자바 클래스파일에 사용된다.
DB의 쿼리문을 제어하는 함수들로 구성어 SQL 프레임워크와 밀접한 연관성을 갖고있다.
@Repository가 작성되는 파일은 클래스파일이 아닌 인터페이스 파일로 작성된다.
ex) public interface TestRepository
@Autowired
알아서 의존 객체(bean) 을 찾아 주입한다.
2개 이상이면 오류를 발생! 주로 인터페이스 선언 시 사용
@ResponseBody
VO객체를 JSON으로 바꿔서 HTTP BODY 에 담는 어노테이션
메소드의 return 값을 http Response body 에 담는 역할을 한다.
Controller를 생성했을 때 return 값으로 반환하는 문자열의 이름의 view 페이지를 띄어준다.
@RequestBody
VO객체를 json으로 바꿔 http body 안에 담는다.
HTTP 요청의 바디부분을 자바 객체로 받을 수 있게 해준다.
@RequestParam
HTTP GET 요청에 대해 request parameter 값이 자동으로 들어감.
url 뒤에 붙는 파라미터값을 가져올 때 사용한다.
ex) http://localhost:8080/test?index=1&page=2
@RequestParam("실제값") String 변수이름
@Pathvariable
HTTP 요청에 대해 매칭되는 request parameter 값이 자동으로 들어간다.
url 에서 각 구분자에 들어오는 값을 처리해야 할 때 사용
REST API 에서 많이 사용
ex) http://localhost:8080/test/1
@ModelAttribute
HTTP BODY 내용과 HTTP 파라미터 값들을 getter, setter 생성자를 통해 주입한다.
일반 변수의 경우 전달이 불가능하기 때문에 model 객체를 통해 전달해야 한다.
@ModelAttribute("파라미터명")
@SessionAttribute
모델 정보를 HTTP 세션에 저장해주는 어노테이션.
이 어노테이션에 설정한 이름에 대한 해당하는 몯레 정보를 자동으로 세션에 넣어준다.
@Required
필수 프로터피를 설정, setter method에 사용한다.
@ComponentScan
특정 패키지 안의 클래스들을 스캔하고 Component Annotation이 있는 클래스에 대해
bean 인스턴스를 생성한다
@Qualifier
@Autowired 어노테이션을 사용해 의존성 자동 주입 과정에서 bean 객체가 한개여야 하지만
두개 이상의 bean일 경우 예외 발생한다. 이러한 문제를 해결하기 위해 @Qualifier 사용
@Configuration
이 클래스 안에서 @Bean 어노테이션이 동봉된 메소드를 선언하면, 그 메소드를 통해 스프링 빈을 정의하고 생명주기를 설정하게 된다.
자바 기반의 config가 싫다면 XML 쓰면 된다.
@EnableAutoConfiguration
빈들을 자동적으로 컨테이너에 등록하는 역할을 하는 어노테이션이다.
@SpringBootApplication
스프링 부트의 자동 설정, 스프링 bean 읽기와 생성을 모두 자동으로 설정된다.
@SpringBootApplication이 쓴 위치부터 설정을 읽어가기 때문에 이 클래스는 항상 프로젝트 최상단에
위치해야 한다.
@CookieValue
CookieValue 어노테이션을 이용하여 쿠키를 전달 받을 수 있다.
value 속성을 전달 받을 쿠키 이름을 지정한다.
@Transaction
메소드 내에서 예외가 발생하면 해당 메소드에 이루어진 모든 DB작업을 초기화한다.
ex) 5개를 등록해야 하는데 4번째에서 Exception이 발생하면 앞에 저장된걸 모두 롤백한다
(모든 처리가 정상일때만 커밋, 아니면 롤백)
@Inject
필드,생성자,메소드에서 사용한다. 타입이 같은 bean을 먼저 찾고 같은 타입의 bean 객체가 여러개 있으면
다음 이름으로 찾는데 , 그래도 없다면 예외를 발생시킨다. 사용 방법은 @Autowired와 거의 유사하다.
반응형'SpringBoot' 카테고리의 다른 글
[Spring boot] @Scheduled 스케쥴 어노테이션 사용 (0) 2022.04.20 [Spring boot] 스프링 부트 정리 (0) 2021.09.16