어노테이션 정리

김형민·2021년 7월 18일
0

제 주관적인 내용이 많이 포함되 있을 수 있습니다.
사실과 다른부분이 있다면 수정하겠습니다 :)

@Controller

Spring의 Controller를 의미한다. Spring MVC에서 Controller클래스에 쓰인다.

@RequestMapping

백엔드의 CRUD 구현에 쓰이는 것 같다.

요청 URL을 어떤 method가 처리할지 mapping해주는 Annotation이다.

Controller나 Controller의 method에 적용한다.

요청을 받는 형식인 GET, POST, PATCH, PUT, DELETE 를 정의하기도 한다.

@RequestMapping("/article/detail") // 이 url로 요청이 오면
	public String showDetail(Model model, long id) { // id도 받아야 id에 맞는 상세페이지 view 제공

		Article article = articleService.getOne(id); 
		//dto에 정의 해놓은 Atricle 객체를 이용해 선언하고
		//article = ArticleService에 정의 해놓은 getOne(id)을 이용해 찾은 데이터 
		
		//조회수
		articleService.hitUp(id);
	
		model.addAttribute("article", article);
		// model에 getOne(id)로 찾은 article정보를 넣어준다?
		
		return "article/detail"; // jsp 파일을 보내줌
	}

@Autowired

속성(field), setter method, constructor(생성자)에서 사용하며 Type에 따라 알아서 Bean을 주입 해준다.

이 Annotation을 사용할 시, 스프링이 자동적으로 값을 할당한다.
Controller 클래스에서 DAO나 Service에 관한 객체들을 주입 시킬 때 많이 사용한다.

필드, 생성자, 입력 파라미터가 여러 개인 메소드(@Qualifier는 메소드의 파라미터)에 적용 가능하다.

Bean이란?

빈(Bean)
Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean)이라는 용어로 부른다.
우리가 new 연산자로 어떤 객체를 생성했을 때 그 객체는 빈이 아니다.
ApplicationContext.getBean()으로 얻어질 수 있는 객체는 빈이다.
즉 Spring에서의 빈은 ApplicationContext가 알고있는 객체, 즉 ApplicationContext가 만들어서 그 안에 담고있는 객체를 의미한다.

@ResponseBody

백엔드와 CRUD에 많이쓰일 것 같다.!
메소드에 @ResponseBody 로 어노테이션이 되어 있다면 메소드에서 리턴되는 값은 View 를 통해서
출력되지 않고 HTTP Response Body 에 직접 쓰여지게 됩니다.
이때 쓰여지기 전에 리턴되는 데이터 타입에 따라 MessageConverter 에서 변환이 이뤄진 후 쓰여지게 됩니다.

@Service

Service Class에서 쓰인다.
비즈니스 로직을 수행하는 Class라는 것을 나타내는 용도이다.

@Override

음... ServiceImpl 에서 service에 선언된? 것들의 로직을 짜줄때??
필요한 것 같다.

profile
항해 중인 개발자

0개의 댓글