본문 바로가기

Spring/Spring Boot(스프링 부트)

(36)
스프링 부트 @RequiredArgsConstructor 애노테이션 @Slf4j @Controller @RequestMapping("/api/v1/data/invalid_request/") @RequiredArgsConstructor public class InvalidRequestController { private final InvalidRequestService invalidRequestService;필드 DI를 제발좀 쓰지 말라고 하도 뭐라고 해서 컨스트럭터 di로 바꾸고 있는데 final로 선언을 해주면 그 부분을 자동화 해주는 애노테이션이 있다는 것을 알게 되었습니다. 위와 같이 씁니다. 그러면 @Autowired도 안써도 돼고 constractor도 없어도 됩니다. 그런데 final을 꼭 붙여야 합니다. 안그러면 null나와욤
WebFlux test get, get with param, post, post with param TransferController.java@Slf4j @RestController @RequestMapping("/api/v1") public class TransferController { private TransferService transferService; public TransferController(TransferService transferService) { this.transferService = transferService; } @GetMapping("/transfer") Mono getTransfer(ServerRequest req) { return ok().body(fromObject(req.pathVariable("name"))); } @GetMapping("/transferp") ..
spring boot를 띄우고 특정 url로 call을 보내면 api call해서 db에 저장하는 코드 1.특정 controller가 실행 되었을 때해당 controller로 들어온 request body를 읽어서 만든 스프링부트 앱을 콜하면스프링부트앱이 네이버에 콜을 보내서받아온 값을json으로 바꿔서값을 뽑아서pojo에 저장하고그걸 repository를 이용해 db에 저장
Optional .orElseThrow(Function) 사용법 없으면 에러처리 하고 싶을 때 쓴다. // 없으면 여기에서 error를 뱉어야 한다. List ohlcvs = opt.orElseThrow(() -> new NoResultException("ohlcv result set null")); end.
spring boot cache 넣기 Spring Boot에 Cache넣기 spring-boot-starter-cache만 import 하면 ConcurrentHashMap이 캐쉬 클래스가 된다.이 클래스는 expire를 수동으로 해줘야 한다.그래서 expire time을 줄 수 있는 caffein cache를 쓰는 것. pom.xml org.springframework.boot spring-boot-starter-cache com.github.ben-manes.caffeine caffeine 2.6.2 main(){@SpringBootApplication @EnableCaching public class ChartDataServer extends SpringBootServletInitializer {} ChartDataService.jav..
spring boot field injection 피하기 Spring에서 bean을 import 할 때 field injection은 피하는게 좋다. 아래와 같이 생성자에 넣어주도록 하자.12345@Autowiredpublic MessageReceiveWorker(AmazonSQS sqsClient, ServerConfig serverConfig) { this.sqsClient = sqsClient; this.serverConfig = serverConfig;} cs intelli j에서 아래와 같이 쓰면 12345@Autowiredprivate AmazonSQS sqsClient; @Autowiredprivate ServerConfig serverConfig;cs Field Injection(필드 인젝션)을 쓰지 말라고 경고 메세지가 나온다. 클래스에 필드로..
Spring Boot 앱 빌드하고 실행하기 with jpa, h2
스프링 부트 컨트롤러 테스트(spring boot controller test) 스프링부트 앱을 만들고 컨트롤러를 만든 다음에 이 컨트롤러가 내가 원하는대로 잘 작동 하는지 테스트 하고 싶을 때가 있다. 그러면 주로 쓰는 방법이 스프링부트를 띄운다음에 localhost:8080을 띄우고 localhost:8080/deposit/ 이런식으로 api를 바로 콜하는 식으로 하는 경우가 많은데 이 http request도 스프링부트 test에서 만들어주는 기능이 있어서 한번 해본다. project빌드하기 롬복 추가 해준다. 적절한 위치에 만든다. package하나 만들어준다.controllers라는 이름으로 만들었다. Controller클래스 하나 만들어준다. package com.test.controllers; import org.springframework.http.MediaType;i..