JAVA에서 json을 처리하기 위해 사용되는 라이브러리입니다. json 라이브러리 중에서 가장 많이 사용된다고 하네요.
2. @Controller
해당 클래스가 Controller임을 나타내기 위한 어노테이션입니다.
3. @RestController
해당 클래스가 RESTController임을 나타내기 위한 어노테이션. 스프링 4부터 @RestController는 REST방식의 데이터 자체를 서비스하는 것을 말한다. 스프링 3에 해당 메소드의 리턴 타입에 @ResponseBody 애노테이션을 추가하는 형태로 작성되었다. 기능은 달라진것이 없지만, 컨트롤러의 용도를 지정한다는 점에서 변화가 있다고 할 수 있다.
3-1 @Controller와 @RestController의 차이점
@Controller는 @ResponseBody 어노테이션을 사용해야합니다. 반대로, @RestController는 @ResponseBody를 사용하지 않아도 됩니다. 포함되어 있습니다. @Controller와는 다르게 @RestController는 리턴값에 자동으로 @ResponseBody가 붙게되어 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달됩니다. 그런 차이점이 있습니다.
4. @GET 방식
서버에 요청을 하는 메서드이다. URL에 파라미터를 붙여서 보내는 방식을 말한다.
URL?변수명1=값1&변수명2=값2&변수명3=값3&…
5. @RequestMapping
요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션
6. @RequestParam
컨트롤러를 구현하면서 가장 많이 사용되는 어노테이션이 바로 @RequestParam
RequestParam 어노테이션은 HTTP 요청 파라미터를 메서드의 파라미터로 전달받을 때 사용된다.
위의 경우처럼 HTTP 요청 파라미터가 정상적으로 넘어올 때도 있지만, 넘어오지 않을 때도 있다. 이런 경우를 대비해서 defaultValue 속성을 이용해서 기본값을 지정할 수 있다.
7. @ResponseBody
@RequestBody 어노테이션을 이용하면 HTTP 요청데이터(Body)를 자바 객체로 전달받을 수 있다. @RequestBody 어노테이션은 요청의 Body부분을 살피고 데이터를 추출하여 파라미터로 변환한다. 그 말은 즉, GET 방식처럼 HTTP Body에 요청이 전달되는 것이 아니라, URL 파라미터로 전달하는 경우 당연히 제대로 받지 못한다.
8. @SpringBootSpplication
@Configuration + @EvableAutoConfiguration + @ComponentScan 를 묶어놓은 것이다. 스프링 개발자들이 이 세가지를 많이 사용하다보니 묶어둔 것입니다.
많은 스프링 부트 개발자들은 자동 구성, 구성 요소 검사를 사용하고 "응용 프로그램 클래스"에서 추가 구성을 정의 할 수 있는 응용 프로그램을 좋아합니다 . 단일@SpringBootApplication주석을 사용하여 다음 세 가지 기능을 사용할 수 있습니다.
@EnableAutoConfiguration: 스프링 부트의 자동 구성 메커니즘 활성화
@ComponentScan: @Component응용 프로그램이있는 패키지에서 검사를 활성화 합니다.
@Configuration: 추가 빈(객체)을 컨텍스트에 등록할 수 있습니다.
9. @Configuration
org.springframework.context.annoatation 패키지의 @Configuration 어노테이션과 @Bean 어노테이션을 이용해서 스프링 컨테이너에 새로운 빈(객체)을 제공할 수 있다. 아래의 예시는 자바를 이용해서 새로운 빈(객체)를 스프링 컨테이너에 제공하는 것을 보여주고 있다.