- 프로그램에게 추가적인 정보를 제공해주는 역할
- 속성을 어떤 용도로 사용할지, 클래스에게 어떤 역할을 부여할 지를 결정한다.
@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 를 동시에 지원하는 서비스에 사용한다. |