-
jpa entity 기본 생성자(Default Constructor) 필요할때개발/Spring 2020. 3. 10. 10:43
jpa로 검색해오는 소스에서 기본 생성자 관련 에러가 발생했다. 검색과 고민 끝애 해당 객체의 이름만 딴 기본생성자를 넣었고, 문제 없이 조회가 가능해졌다 @Entity public class Student{ protected String name; protected int age; public Student(Graduate graduate) this.name = graduate.getName(); this.age = graduate.getAge(); } 와같이 student를 저장할때 졸업생으로 받았다면 학생으로 생성후 저장하려고 생성자를 만들어 뒀는데 이로인한 기본 생성자 에러가 발생한 것이다. JPA는 조회시 default Constructor로 객체를 생성한 뒤 Reflection을 이용해 값을 ..
-
webclinet 응답 객체 다루기 (json 객체)개발/Spring 2020. 3. 6. 18:46
webclinet 응답 데이터를 vo 객체나 string 탑이로 받는것은 보이는데 json은 없다. vo 형태로 받기에 있을법도 한데 없어서 한참을 검색하고, 레퍼런스를 봤지만 찾을수가 없었다. 택한 방법은 string으로 받은 후 json으로 변경하였다. Mono result = getClient.get ( ) .uri (uri) .retrieve ( ).bodyToMono (String.class).map (s -> { // ObjectMapper mapper = new ObjectMapper ( ); try { JsonNode jsonNode = mapper.readTree (s); return jsonNode; } catch (JsonProcessingException e) { e.printSta..
-
Webclinet 응답 메모리 늘리기개발/Spring 2020. 3. 6. 18:31
webclient으로 api서버로 부터 데이터를 회신하는데 많을때는 약 5mb정도의 json 데이터가 오기때문에 메모리 제한 에러가 발생한다. 이럴때 webclient 생성시 설정을 다음과 같이 하면된다 WebClient webClient = WebClient.builder() .exchangeStrategies(builder -> builder.codecs(codecs -> codecs.defaultCodecs().maxInMemorySize(2 * 1024 * 1024) ) ) .build(); 설명에 따르면 default로 256kb로 설정되어져 있다. 참고 https://docs.spring.io/spring/docs/current/spring-framework-reference/web-react..
-
double 형 비교개발/JAVA 2020. 3. 3. 17:34
값 비교에서 string은 equals() 함수를 잘 활용하지면 숫자값은 주로 == 연산자로 값 비교를 해왔다. 그러던 중 똑같은 double형 값을 비교했는데 == 연산자로 확인이 되지 않았다. @Test public void compareNumber(){ List aList = new ArrayList (); double a = 10.0; aList.add (a); List bList = new ArrayList (); double b = 10; bList.add (b); System.out.println (a==b ); System.out.println (aList.get (0)==bList.get (0) ); } 위 처럼 double a와 b 를 연산자로 비교하였을때 true지만
-
간단 메모카테고리 없음 2020. 2. 28. 11:37
작업 중 스트링 타입으로 변한할 때 toString()과 String.ValueOf()중 고민할 때가 많다. toString이 보다 사용하기 편하지만 String.valueOf()는 파라미터가 Null이면 문자열 Null을 만들어 반환하고, toString()은 null일때 Null point Exception을 발생시킨다. 따라서 null 예외처리를 따로 하지 않는경우는 String.valueOf()를 주로 사용하면 될 것 같다. String -> Json, Json -> class객체로 변환할 때 String -> Json 경우는 단계가 간단하고 spring boot에 내장되어있는 jackson을 사용 json -> class 변환에는 대표적인 라이브러리 Jackson과 Gson 중 100mb이하 가..
-
webclient response header값 가져오기카테고리 없음 2020. 2. 25. 18:36
webclient 요청에서 response를 가져올 때 exchange와 retrieverk가 있다. exchange는 ClientResponse를 상태값, 헤더값을 가져오지만 retrive는 body값을 바로 가져온다. 따라서 header값을 얻으려면 exchange를 사용해야한다. WebClient.RequestHeadersSpec req= webClient .post () .uri ("/test") .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .acceptCharset(Charset.forName("UTF-8")) .body (BodyInserters.fromFormData (map)); ClientResponse resp..
-
docker - spring boot 스프링 부트 프로젝트 도커에 올리기 1개발/Docker 2020. 2. 21. 17:41
참조 :스프링 부트 도커 가이드 https://spring.io/guides/gs/spring-boot-docker/ 1.spring boot 프로젝트 내 DockerFIle 생성 FROM openjdk:8-jdk-alpine LABEL maintainer="developer@gmail.com" VOLUME /tmp ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 2.도커 이미지 빌드 DockerFile이 있는 위치에서 docker build -t dockertest . docker images 이미지가 만들어졌..
-
개발환경 만들기 - ubuntu & mysql개발/Docker 2020. 2. 21. 10:56
1. ubuntu container 띄우기 docker pull ubuntu //뒤에 버전정보가 없다면 최신 버전으로 가져온다 docker run -itd --name ubuntutest ubuntu //ubuntutest라는 이름으로 container를 만들고 백그라운드로 실행시켰다. //-i -t 는 -i(interactive), -t(Pseudo-tty) 옵션을 사용하면 실행된 Bash Shell에 입력 및 출력을 할 수 있다. //-d 는 백그라운드 실행 docekr exec -it container_id bash //container_id는 docker ps -a 로 리스트에 나와있는 아이디를 확인했다. 2.python 셋팅하기 apt-get update apt-get install pytho..