@Configuration: 스프링 설정 클래스를 선언하는 어노테이션@Bean: bean을 정의하는 어노테이션 (라이브러리 혹은 내장 클래스 등 개발자가 직접 제어가 불가능한 클래스들을 Bean으로 등록하기 위해 사용)@ComponentScan: @Controller, @Service, @Repository, @Component 어노테이션이 붙은 클래스를 찾아 컨테이너에 등록하는 어노테이션 (basePackages를 지정하면 여러개의 package를 지정할 수 있다.)@Component: Component scan의 대상이 되는 어노테이션 중 하나로써 주로 유틸, 기타 지원 클래스에 붙이는 어노테이션@Autowired: 주입 대상이 되는 bean을 컨테이너에서 찾아 주입하는 어노테이션@RequestMapping: Http 요청과 이를 다루기 위한 Controller의 메소드를 연결하는 어노테이션- Http Method와 연결하는 방법
- @RequestMapping("/users", method = RequestMethod.POST)
- From Spring 4.3 version
- @GetMapping
- @PostMapping
- @PutMapping
- @DeleteMapping
- @PatchMapping
- Http 특정 헤더와 연결하는 방법
- @RequestMapping(Method = RequestMethod.GET, headers = "content-type="application/json")
- Http Parameter와 연결하는 방법
- @RequestMapping(method = RequestMethod.GET,params = "type=raw")
- Content-Type Header와 연결하는 방법
- @RequestMapping(method = RequestMethod.GET, consumes = "application/json")
- Accept Header와 연결하는 방법
- @RequestMapping(method = RequestMethod.GET, produces = "application/json")
- Http Method와 연결하는 방법
@EnableWebMvc: DispatcherServlet의 RequestMappingHandlerMapping, RequestMappingHandlerAdapter, ExceptionHandlerExceptionResolver, MessageConverter 등 Web에 필요한 빈들을 대부분 자동으로 설정해준다.- xml 파일로 설정했다면, <mvc:annotation-driven/> 태그가 해당 역할을 대신한다.
- 기본 설정 이외의 설정이 필요하다면 WebMvcConfigurerAdapter를 상속받도록 config class를 작성한 후, 필요한 메소드를 오버라이딩 하도록 한다.
@EnableTransactionManagement- Spring Java Config 파일에서 트랜잭션을 활성화 할 때 사용하는 어노테이션
- Java Config를 사용하게 되면 PlatformTransactionManager 구현체를 모두 찾아서 그 중에 하나를 매핑해 사용한다.
- 특정 트랜잭션 매니저를 사용하고자 한다면 TransactionManagementConfigurer를 Java Config 파일에서 구현하고 원하는 트랜잭션 매니저를 리턴하도록 한다.
- 아니면, 특정 트랜잭션 매니저 객체를 생성시 @Primary 어노테이션을 지정한다.
@RestController- Spring 4에서 Rest API 또는 Web API를 개발하기 위해 등장한 어노테이션.
- 이전 버전의 @Controller와 @ResponseBody를 포함한다.
@Repository: Dao 객체에는 저장소의 역할을 한다는 의미로, Repository 어노테이션을 사용@EnableTransactionManagement: 트랜잭션을 위한 어노테이션@Import: Import 어노테이션을 사용하면 설정 파일을 나누어서 작성할 수 있다.@Transactional: 스프링에서는 트랜잭션 처리를 지원하는데 그 중 어노테이션 방식으로 @Transactional을 선언하여 사용하는 방법이 일반적이며, 선언적 트랜잭션이라 부른다.- 스프링이 제공하는 트랜잭션 템플릿 클래스를 이용하거나 설정 파일, 어노테이션을 이용해서 트랜잭션의 범위 및 규칙을 정의할 수 있다.
- 클래스, 메서드 위에 @Transacrtional이 추가되면, 이 클래스에 트랜잭션 기능이 적용된 프록시 객체가 생성된다.
- 이 프록시 객체는 @Transactional이 포함된 메소드가 호출될 경우, PlatformTransactionManager를 이용하여 트랜잭션을 시작하고, 정상 여부에 따라 Commit 또는 Rollback한다.
- @Transactional 어노테이션은 클래스의 메소드 뿐만 아니라 인터페이스, 클래스 선언에도 사용할 수 있다.
- 메소드에 선언된 @Transactional의 설정이 가장 우선되기 때문에, 공통적인 규칙은 인터페이스, 클래스 등에 적용하고 특별한 설정은 메소드에 적용할 수 있다.
Lombok 어노테이션(https://www.daleseo.com/lombok-popular-annotations/ 참조)
참조 URL
'Java' 카테고리의 다른 글
Jsp (JavaServer Pages) (0) | 2020.07.07 |
---|---|
JUnit이란? (0) | 2020.07.01 |
DataSource란? (0) | 2020.06.28 |
Connection Pool이란? (0) | 2020.06.28 |
어노테이션이란? (0) | 2020.06.28 |