======Main======
@Bean : 제어 불가한 외부 라이브러리를 Bean으로 만듬
@Controller : class가 Controller 역할임을 명시
@Autowired : Bean 객체를 주입 (@AllArgsConstructor, setter)
@Component : class를 spring의 bean으로 등록 (Service, Repository, Controller 주석 내부에 존재)
@ComponentScan : 클래스들을 스캔하여 Bean으로 등록
======Lombok======
@Setter
@Getter
@ToString : class 모든 필드에 toString 메소드 생성, exclude 속성 사용하여 특정 필드 toString에서 제외 가능
@NoArgsConstructor : 파라미터가 없는 기본 생성자 생성
=> Test test1 = new Test();
@RequiredArgsConstructor : final이나 @NonNull인 필드만 파라미터로 받는 생성자 생성
=> Test test1 = new Test("string1", "string2");
@AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자 생성
=> Test test1 = new Test("string1", "string2", null);
@EqualsAndHashCode : equals, hashCode 메소드를 자동으로 생성 (equal : 내용동일여부 hashCode : 객체동일여부)
@Data : 위 모든 내용 한번에 추가
======Test======
@SpringBootTest
@Test : JUnit에서 테스트 할 대상 표시
======Param======
@RequestHeader : Request의 header값을 가져오며 파라미터로 사용
@RequestBody : HTTP 요청 본문을 Java 오브젝트로 변환
public String addUser(@RequesBody User user) {}
@RequestParam : GET 형식의 요청에서 쿼리 문자열을 전달하기 위해 사용 ‘?’ 기준으로 키 = 값 형태로 전달되며 복수 형태로 전달할 경우 &사용
======API======
@GetMapping
@PostMapping
@RequstMapping(value=”/hello”, method=RequestMethod.GET)
public String getHello(){ return “hello world”;}
⇒ value와 method로 API 개발, 고전적인 방법으로 이젠 거의 사용안함