2019. 1. 22. 20:51ㆍ[정리] 기능별 개념 정리/스프링 부트
Application에서 사용하는 Annotation |
|
@SpringBootApplication |
각종 스프링을 위한 Annotation을 한꺼번에 등록 |
@MapperScan(value="com.example.springtuto.Mapper") |
Spring Application 위에 입력해서 Mapper를 등록 |
컨트롤러에서 사용하는 Annotation | |
@Controller |
View page를 위한 컨트롤러 등록 |
@RestController |
Rest API를 위한 컨트롤러 등록 |
@RequestMapping("/member") |
Rest API에 접근하기 위한 path 지정 컨트롤러 상단, 메소드 상단에서 사용가능 주로 컨트롤러에서 사용 |
@GetMapping("/select") |
@RequestMapping(value="/select", method = RequestMethod.GET))와 동일, 주로 메소드에서 사용 |
@PutMapping("/insert") |
@RequestMapping(value="/insert", method = RequestMethod.PUT))와 동일, 주로 메소드에서 사용 |
@PostMapping("/update") | @RequestMapping(value="/update", method = RequestMethod.POST))와 동일, 주로 메소드에서 사용 |
@DeleteMapping("/delete") | @RequestMapping(value="/delete", method = RequestMethod.DELETE))와 동일, 주로 메소드에서 사용 |
@PathVariable String id | @RequestMapping 안의 {id} 와 같이 path가 변수일 경우 매개변수로 받아서 사용할 수 있음 |
@RequestParam("id") String id | @RequestMapping 에 정의한 path 뒤에 "?id=" 와 같이 파라미터가 따라 오는 경우 매개변수로 받아서 사용할 수 있음 |
@RequestBody MemberDTO member | @RequestMapping 으로 넘어오는 요청에 json같은 요청이 있을 경우 매개변수로 받아서 사용할 수있음 |
DAO에서 사용하는 Annotation |
|
@Service | DAO 안의 여러 메소드를 사용하여 비즈니스 로직을 구현하는 컴포넌트에 등록 |
@Transactional | 해당 Service에서 실행되는 메소드는 Transactional 하게 동작한다고 지정 |
@Repository |
DAO, Repository, Mapper 클래스에 등록 하나의 메소드는 하나의 쿼리를 실행한다. |
DTO에서 사용하는 Annotation | |
@Data |
DTO 에 등록 (lombok) |
@NotNull | DTO 변수에 등록 |
| |
@Autowired |
변수의 타입에 맞춰 연결됨, 안되면 이름으로 시도 (스프링) |
@Inject |
변수의 타입에 맞춰 연결됨, 안되면 타입으로 시도 (자바) |
@Resource |
변수의 이름에 맞춰 연결됨, 안되면 이름으로 시도 (자바) |
@Autowired | 스프링에서 지원, 변수 이름에 맞춰 연결되게 강제하고 싶을 때 씀 의존성 주입을 원하는 변수의 타입이 인터페이스일 경우 구현 클래스가 여러개일 수 있다. 이 때 원하는 데이터를 좀 더 확실히하기 위해 사용 |
간단한 예시
@RestController class MemberController{ @GetMapping("get/{id}") public String getMemberByID(@PathVariable String id){ ~ } @GetMapping("get/all") public String getMemberAll(){ ~ } @PutMapping("/insert") public MemberDTO insertMember(@RequestBody MemberDTO member){ ~ return member; } @DeleteMapping("/delete") public String deleteMember(@RequestParam("id") String id){ ~ } } |
덧붙임
@RequestMapping(value="/path", methods="", params="", headers="", consumes="application/json produces="", custom="") |
컴포넌트의 하위 관계
@Component
↘@Controller
↘@Service
↘@Repository
@Bean vs @Component
@Bean : 라이브러리와 같이 사용자가 만들지않은 클래스를 빈으로 등록할 때
@Component : 사용자가 만든 클래스를 빈으로 등록할 때
의존성 주입을 받는 방법
1. Constructor 주입 방식 : 컴포넌트 생성자의 매개 변수에 주입을 원하는 변수가 있을 경우 Spring이 자동으로 주입해준다.
2. Setter @Autowired 주입 방식 : 주입을 원하는 멤버 변수의 Setter 위에 @Autowired를 붙이는 경우
3. 필드 @Autowired 주입 방식 : 주입을 원하는 멤버 변수 바로 위에 @Autowired를 붙이는 경우
'[정리] 기능별 개념 정리 > 스프링 부트' 카테고리의 다른 글
Controller to model flow (0) | 2019.03.21 |
---|---|
스프링 부트 Annotation - 설정 (0) | 2019.03.17 |
스프링 부트 요약 (0) | 2019.01.23 |
스프링 부트 Mybatis (0) | 2019.01.22 |
스프링 부트 Setup (0) | 2019.01.22 |