Let's break down the Controller.

Ryan mingun choi·2023년 11월 2일
0

1) 스프링 프로젝트 생성

  • start.spring.io에서 생성
  • 자바 11버젼이하는 뒤에 옵션이 붙지 않는 2.X.X를 선택
  • Dependency로 Spring web을 선택

2)annotation 정리하기

  1. Core Annotations
  • @SpringBootApplication: @Configuration, @EnableAutoConfiguration, @ComponentScan 3가지를 하나의 에노테이션으로 합친 것
  1. Web & REST
  • @Controller: 웹 애플리케이션과 함께 사용하는 Spring MVC 컨트롤러를 나타냄. 주로 View를 반환

  • @RestController: RESTful 서비스용 개발할 때 주로 사용, @Controller + @ResponseBody의 조합, JSON 형태로 객체 데이터를 반환

  • @RequestMapping: URL을 요청 받은 후 어떤 method가 처리할지 mapping해주는 에노테이션으로 어떤 요청으로 받을지 정의 후 GET, POST, PUT, DELETE 같은 HTTP method를 지정할 수 있다.

  • @GetMapping, @PostMapping, @PutMapping, etc.: 특정 HTTP method를 가진 @RequestMapping을 위한 단축어

  1. Service, Repository & Component
  • @Service: 비즈니스 로직을 수행하는 Class라는 것을 나타내는 용도

  • @Repository: DAO 또는 저장소 Class를 주석처리, DataBase에 접근하는 method를 가지고 있는 Class

  • @Component:
    개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 에노테이션, @Service와 @Repository는 @Component의 특수한 형태

  1. Configuration & Beans
  • @Configuration: Class가 bean 정의의 원처이라는 것을 나타냄

  • @Bean: 개발자가 직접 제어가 불가능한 외부 라이브러리등을 Bean으로 만들려할 때 사용

  • @Profile: @Profile에 인자로 들어가는 값은 프로파일이 현재 인자값과 일치할 시 명시한 스프링 빈을 등록하라

  1. Dependency Injection
  • @Autowired: field, setter method, constructor(권장방식)에 사용하며 Type에 따라 알아서 Bean을 주입

  • @Qualifier: @Autowired와 같이 쓰이며, 같은 타입의 Bean 객체가 있을 때 해당 아이디를 적어 원하는 Bean이 주입될 수 있도록 하는 Annotation

  • @Value: properties에서 값을 가져와 주입할 때 사용

  1. Data & Persistence
  • @Entity: 영속성 엔터티를 나타내는 JPA 에노테이션

  • @Table: 엔터티가 매핑되어야 할 테이블을 지정하는 데 사용

  • @Id, @GeneratedValue: 기본 키 및 생성 전략을 위한 JPA 에노테이션

  • @Column: 영속 속성이나 필드에 대한 매핑된 열을 지정하는 데 사용

  1. Aspects & Transaction
  • @Aspect: 관점 지향 프로그래밍(AOP)에서 관점을 정의하는 데 사용

  • @Transactional: 메서드나 클래스에 트랜잭션 동작이 있어야 함을 나타냄

  1. Event Handling
  • @EventListener: 빈 메서드가 애플리케이션 이벤트를 수신하도록 허용합
  1. Testing
  • @SpringBootTest: Spring Boot와 함께 사용되는 통합 테스트용, 애플리케이션 컨텍스트를 자동 구성할 수 있다.

  • @TestConfiguration: 테스트에 추가 구성을 제공하는 클래스임을 나타내기 위해 Spring Boot 테스트 기능과 함께 사용

  • @MockBean: 테스트 중 애플리케이션 컨텍스트에 모의 객체를 추가하는 데 사용

3) Controller 클래스 생성하기

방법1

@Controller
@ResponseBody
public class SjinchoApplication {

	@GetMapping(path = "/test")
	public String Test1(){
		return "Test";
	}
}

방법2

@RestController
public class SjinchoApplication {

	@GetMapping("/test")
	public String Test1(){
		return "Test";
	}
}

방법3

@RestController
public class SjinchoApplication {

	@RequestMapping(value = "/test", method=RequestMethod.GET)
	public String Test1(){
		return "Test";
	}
}
profile
finding happiness

0개의 댓글