2021.08.02
비가 조금 옵니다. 깜빡하고 우산을 안 가지고 나왔습니다. 비가 그치기 전까지 카페에 있을 예정입니다.
현재 유튜브 '뉴렉처' 님의 spring mvc 강의를 들으면서 정리를 진행하고 있습니다.
이분 수업이 xml -> annotation -> xml + java-config 순으로 전부 돌아가는거 같아서
지금은 수업에서 xml 파일설정부터 배우고 정리하고 있습니다. 수업을 듣다보니 xml이 가지는 설정 정보가
점점 많아지는거 같아 왜 annotation을 쓰는지, 어떤 장점을 가지는지 느끼고 있습니다.
생각난 김에 Annotation에 대해 아는대로 정리해보겠습니다.
1. Annotation이란
spring에서는 보통 annotation으로 많은 설정을 합니다.
annotation이란 JEE5부터 추가된 요소입니다. 사전적인 의미로는 주석이고
Java에서는 코드 사이에 주석처럼 쓰이며 특별한 기능을 수행합니다. 주로 메타데이터를 표시하는 용도로 쓰입니다.
(META-data : 데이터를 위한 데이터, 데이터에 대한 설명을 의미하는 데이터, 자신의 정보를 담은 데이터)
2, spring의 다양한 annotation.
1) @Component
개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 Annotation입니다.
ex) @Component(value = "???")
value를 지정한 모습입니다. value가 없다면 Class의 이름을 CamelCase로 변경한 것이 Bean id로 사용됩니다.
2) @Autowired
속성에서 사용하고 type에 따라 알아서 Bean을 주입해줍니다. 무조건적인 객체에 대한 의존성을 주입시킨다고 합니다.
이 annotation은 spring이 자동적으로 값을 할당합니다. Controller class에서 DAO나 Servicedp 관한 객체들을 주입 시킬 때 많이 사용합니다.
Bean을 주입 받는 방식은 3가지가 있습니다. @Autowired, setter, 생성자
3) @Inject
@Autowired 과 비슷한 역할을 합니다.
4) @Controller
spring에서 Controller를 의미합니다. spring mvc에서 Controller Class에 쓰입니다. view return이 주목적
5) @RestController
spring에서 Controller 중 View로 응답하지 않는 Controller를 의미합니다.
method의 반환결과를 JSON 형태로 반환합니다. 이 Annotation이 적혀있는 컨트롤러의 메서드는 HttpResponse로
바로 응답이 가능합니다. @responsebody 역할을 자동적으로 해주는 Annotation입니다. data return이 주목적
6) @Service
서비스 클래스에서 쓰입니다. 비즈니스 로직을 수행하는 Class라는 것을 나타내는 용도입니다.
7) @Repository
DAO 클래스에서 쓰입니다. 데이터베이스에 접근하는 메서드를 가지고 있는 클래스에서 보통 쓰입니다.
더 많은 어노테이션들이 많지만 이 정도까지만 정리하고 마무리 짓겠습니다.
12월 말 까지 학교에서 진행하는 웹 공모전 제출이 있습니다.
얼른 공부 끝내고 제작 들어가야겠습니다. 재밌을거 같습니다.
'Spring' 카테고리의 다른 글
spring responsebody, get/post mapping (0) | 2021.08.04 |
---|---|
spring controller, requestmapping, requestparam (0) | 2021.08.03 |
spring bean, ioc container (0) | 2021.08.01 |
Spring MVC (0) | 2021.08.01 |
spring 공부시작 (0) | 2021.08.01 |