본문 바로가기

SpringBoot101

how to generate random number or Alphabetic in java apache.commons-lang3 compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.4' tutorial - generate sample code: //[a-zA-Z] -> RandomStringUtils.randomAlphabetic(count) //[0-9] -> RandomStringUtils.randomNumeric(count) //[a-zA-Z0-9] -> RandomStringUtils.randomAlphanumeric(count) String.format("%s-%s-%s", RandomStringUtils.randomAlphabetic(5), RandomStringUtils.randomNumeric(5), R.. 2020. 4. 30.
Object List multiple field compare and remove class Product { private String code; private String name; private String category; private long price; } List products = Arrays.asList(); //코드,이름 카테고리 3개의 필드가 중복되는 상품 제거. Collection removes = products .stream() .collecti(toMap( p -> Arrays.asList(p.getCode(),p.getName(),p.getCategory()), Function.identity(),(p1,p2) -> p1)) .values(); 2020. 2. 25.
Java Object Stream group by multiple field and map in map to list java stream 을 사용하여 객체 리스트를 여러개 필드로 그룹핑 후 맵형태로 생성 후 리스트로 출력 해보도록 한다. 원본 리스트를 그룹핑 하여 출력되는 최종 결과는 아래 그림과 같다. List courseList = Arrays.asList( Course.builder() .code("A0001") .subject("Math") .semester("First") .price(10000l) .build(), Course.builder() .code("A0001") .subject("Math") .semester("Second") .price(10000l) .build(), Course.builder() .code("A0005") .subject("OperatingSystem") .semester("S.. 2020. 1. 5.
JPA - Join 커뮤니티 게시판 테이블 쿼리: 특정 직업을 가진 사람들이 쓴 글의 정보와 사용자 정보를 조회하는 SQL 는 다음과 같을 것이다 select t.topic_seq '번호',t.title '제목',m.name '작성자',p.title '직업',t.created_at '작성일' from `member` m join `topic` t on m.member_seq = t.member_seq join `profile` p on p.profile_seq = m.profile_seq where p.profile_seq=1; query 결과는 아래와 같을 것이다. JPA 로 해당 부분을 구현 하는 과정은 아래와 같다. JPAQueryFactory 설.. 2019. 12. 8.
spring controller async request process with executor 스프링에서 컨트롤러에서 요청에 대한 처리를 동기가 아닌 비동기 처리하는 방식을 제공 하고있다. 스프링5 의 webflux 사용한다면 해당 비동기 처리를 사용할 수 있지만 스프링 5 버전 이하의 시스템에서는 해당 처리가 필요할 것이다. 스프링이 제공하는 방식 비동기로 처리하기 위해 스프링에서 여러가지 반환 유형을 제공한다. 요청에 대해 즉각 응답을 주는것이 아닌 요청에 대한 처리를 백그라운드로 처리하여 완료시 사용자에게 반환 함으로써 요청 처리에 대한 병목을 없애도록 한다. 스프링이 제공하는 비동기 응답 > 다른 스레드로 생성된 비동기 결과 > > DefferedResult > > ListenableFuture > > CompletionStage > > CompletableFuture > > 연산 후 생성.. 2019. 10. 5.
Java 8 Stream range // 1~10000 사이의 숫자를 문자열 리스트로 반환 List ids = LongStream.range(1,10000) .boxed() .map(String::valueOf).collect(Collectors.toList()); //1~10000 사이의 숫자를 콤마로 분리한 문자열 생성 String strIds = LongStream.range(1,10000) .boxed() .map(String::valueOf) .collect(Collectors.joining(",")); 2019. 8. 24.