충남대학교 컴퓨터공학과의 "실전코딩" 강의를 필기한 내용입니다.
이 문서는 보관이 목적이고, 관리되지 않습니다. 따라서 잘못된 정보가 포함되어 있거나 순서가 뒤죽박죽일 수 있습니다.
Springframework라이브러리
- @Slf4j : 이 클래스의 활동 내역을 내가 로그지를 통해 확인하고 싶다는 뜻
- @RestController : 해당 클래스를 컨트롤러로써 객체생성
- @Post(Get, Put, Patch, Delete)Mapping : HTTP의 메소드들을 구현한 함수라는 것을 알려줌
- @….Mapping(“/resources”)로 url을 지정해 줄 수 있다
- @RequestBody : 매개변수의 인자로써 json을 받고 싶다는 뜻이다 - 받은 json파일을 해당 클래스에 대응시켜 주라는 뜻
- @Service : 해당 클래스를 서비스로써 객체 생성
- @Autowired : 다른 클래스(컨트롤러, 서비스 같은애들)를 갖고와서 이 클래스에서 사용하려고 할 때
- @RequestParam : url을 “?variable=value”형태로 지정하고 싶을 때 사용
- @RequestParam같은 경우에는 @GetMapping()의 괄호에 암것도 안넣어줘도 된다
- 여러개의 매개변수를 받을 때에는 그냥매개변수마다 annotation을 붙여주면 된다
- @PathVariable : url을 “resources/variable”형태로 지정하고 싶을 때 사용
- @PathVariable같은 경우에는 @GetMapping(“resources{variable}”)이렇게 url을 지정해줘야 한다
- 여러개의 매개변수를 받을때는 매개변수마다 annotation을 넣어주고 url은 resources{variable1}/{variavle2} 이래해주면 된다
- !!주의!! 하나의 http메소드를 구현할때 path variable, request param은 한번씩만 써야 된다 - 하나의 http메소드를 두개의 자바 메소드로 구현할때 둘 다 path variable을 쓴다던지 하면 실행중 에러나 강종된다
- @ResponseStatus(HttpStatus.xxx) : http 상태 코드를 클라이언트에게 주고싶을때 사용한다 - 괄호 안에 상태의 종류를 넣으면 된다 - HttpStatus.NOT_FOUND를 주면 그 유명한 404를 갖다주게 된다 - 굳이 이런 400번대가 아니어도 정상적으로 요청이 처리됐다는거를 알려주기 위해 일반 클래스/함수에도 사용해도 된다
- @EnableScheduling, @Schduled(fixedDelay …L) : 배치성 작업(timeInterval같은거) - 클래스에는 @EnableScheduling을 넣어주고 함수에 @Scheduled넣어주면 된다 - 괄호에는 fixedDelay넣어주면 고정된 시간간격이 되고 밀리초 단위로 시간을 적어주면 된다
- @Async : 함수에 얘를 붙이면 자동으로 쓰레드가 하나 생성되어 거기에서 돌아간다
- 주의할 점 : 무조건 public 함수여야 하고
- self-invocation 함수는 안된다?? - 뭔지 모르겠음
- 그리고 쓰레드가 너무 많이 생성되면 heap overflow가 될 수도 있다는 점
- @Configuartion, @Bean : 스프링의 기본 설정값이 아닌 나만의 설정값을 주고 싶을때 클래스에는 @Configuration, 함수에는 @Bean을 넣어주면 된다. 그러면 스프링이 시작될때 기본 설정 말고 이 설정값으로 변경해서 구동되게 되는 것
Lombok라이브러리
- @Data : 게터, 세터를 전처리방식으로 만들어줌
- @No(All)ArgsConstructor : 생성자를 전처리로 만들어줌