
- 프로그램에게 추가적인 정보를 제공해주는 역할
- 속성을 어떤 용도로 사용할지, 클래스에게 어떤 역할을 부여할 지를 결정한다.
| @Configuration | 클래스를 Bean으로 등록할 때 사용 |
| @EnableAutoConfiguration | meta 파일을 읽어 미리 정의되어있는 자바 설정 파일(@Configuration)을 Bean으로 등록해준다. |
| @ComponentScan | @Component를 가진 클래스를 스캔하여 Bean으로 등록해준다. |
| @SpringBootApplication |
@Configuration + @EnableAutoConfiguration + @ComponentScan 스프링부트가 Bean을 등록하는 방식: @ComponentScan으로 Bean 등록 후 @EnableAutoConfiguration으로 추가적인 Bean을 등록함. |
| @Bean |
@Configuration + @Bean으로 직접 Bean을 정의할 때 사용한다.
Spring Container 가 관리하는 자바 객체를 의미 |
| @Component | 클래스를 Bean으로 등록할 때 사용 |
| @ConfigurationProperties | yml, properties 파일을 읽어오는 어노테이션 |
| @Autowired |
@Bean을 주입해주는 어노테이션 @Resource와 유사함. @Autowired는 타입으로 연결 |
| @Resource |
@Bean을 주입해주는 어노테이션 @Autowired와 유사함. @Resource는 이름으로 연결 |
| @Controller | Controller 역할을 하는 class임을 의미 |
| @RestController | 반환 결과가 JSON형태인 @Controller @Controller + @ResponseBody |
| @RequestMapping |
URL을 Controller의 메소드와 맵핑할 때 사용한다. 즉, 요청 url을 어떤 method가 처리할지 여부를 결정하는 어노테이션 @RequestMapping(value=[], method="", params=[], consumes=[], produces=[]) |
| @GetMapping | @RequestMapping(method = RequestMethod.GET) |
| @PostMapping | @RequestMapping(method = RequestMethod.POST) |
| @PutMapping | @RequestMapping(method = RequestMethod.PUT) |
| @DeleteMapping | @RequestMapping(method = RequestMethod.DELETE) |
| @ResponseBody |
HttpMessageConverter를 이용하여 JSON 혹은 xml 형태로 요청에 응답한다.(viewResolver를 무시하여 view가 아닌 값을 응답할 때 사용된다.) 객체 return 시 JACKSON 에 의해 문자열로 변환되어 전송 |
| @Service |
Service 역할을 하는 class임을 의미 * Service 역할 : 비지니스 로직을 수행 |
| @Repository |
DAO class에서 사용 *DAO : DB에 접근하는 메소드를 가진 class |

| @Component | @Configuration |
|---|---|
|
class를 Bean으로 등록해주는 어노테이션 @Component가 하위 개념 |
|
| 사용자가 직접 작성한 클래스를 Bean으로 등록할 때 사용한다. |
외부 라이브러리/내장 클래스와 같이 사용자가 제어 불가한 클래스를 Bean으로 등록할 때 사용한다. @Configuration + @Bean 조합으로 등록하여 사용한다. |
| @Controller | @RestController |
|---|---|
| API + View 를 동시에 지원하는 서비스에 사용한다. |