Spring
[Spring] @EventListener 와 ApplicationReadyEvent.class 를 사용한 spring 초기화
1. 모든 작업을 마치고 나서 "초기화 코드"를 넣어야 하는 경우 스프링부트 애플리케이션이 시작할 때 백그라운드에서 굉장히 많은 스프링 빈(Bean)들이 만들어지고 그 외에 스프링 컨테이너가 초기화하는 과정이 진행된다. 2. 초기화와 동시에 스프링부트 시작 시 생성되어야할 기본 데이터를 생성해야하는 경우. init과 같이 구동과 동시에 필요한 데이터들을 생성할땐 init처럼 사용하면 된다. @Configuration public class ExConfig(){ @EventListener(ApplicationReadyEvent.class) public void init(){ System.out.println("Hello EventListener!! ApplicationReadyEvent"); } } htt..
lombok 주의사항 _ @Data는 가급적 사용금지.
결국은 제일 나쁜 것은 내가 제일 많이 사용하는 @Data 어노테이션이다. @Data 어노테이션에서는 하지말라는 것이 다 포함되어 있다. @Data = @NoArgsConstructor + @Getter + @Setter + @ToString + @EqualsAndHashCode 이다. 출처1 | lombok 사용시 주의사항 https://kwonnam.pe.kr/wiki/java/lombok/pitfall java:lombok:pitfall [권남] kwonnam.pe.kr 출처2 | 출처1을 쉽게 풀어놓은 포스팅 https://lkhlkh23.tistory.com/159 Lombok 너무 편리하기 때문에 주의해야 한다. (Lombok 주의점) 같이 스터디했던 동생이 사전과제에 대한 평가에 DTO에 L..
@RequiredArgsConstructor 롬복 어노테이션으로 자동생성자생성주입
https://velog.io/@developerjun0615/Spring-RequiredArgsConstructor-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%83%9D%EC%84%B1%EC%9E%90-%EC%A3%BC%EC%9E%85 [Spring] @RequiredArgsConstructor 어노테이션을 사용한 "생성자 주입" 의존성주입의 종류로는 Constructor(생성자),Setter,Field 타입이 있다.Constructor(생성자)Setter3.Field생성자주입의 단점은 위의 Constructor(생성자) 코드처럼 생성자를 만들기 번거롭다는 것이다. 하지만 이 velog.io
![[Spring Boot Batch] 오류: "Failed to configure a DataSource: ‘url’ attribute is not...". 오류해결](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPIWYA%2FbtrLXMWLF4t%2FYZrj3XDdhYSX0nxosH72Qk%2Fimg.png)
[Spring Boot Batch] 오류: "Failed to configure a DataSource: ‘url’ attribute is not...". 오류해결
spring: config: activate: on-profile: mysql datasource: hikari: driver-class-name: com.mysql.jdbc.Driver jdbc-url: jdbc:mysql://localhost:3306/springBatch?useUnicode=true&character_set_server=utf8; username: kimhee password: sn8657sn batch: jdbc: initialize-schema: always 내 경우에 application.yml에 db관련 설정 후, 실행 시 url 설정이 잘못되었다는 오류가 자꾸났다. 퍼온 이미지이지만 똑같은 오류였음. application.yml 파일에 아래와 같이 jdbc driver 관련..

spring batch 개요 및 아키텍처
0. 개발환경 - JDK 1.8 이상 - SpringBoot 2.5.1 - DB - H2, Mysql - IDE - Intellij or STS - Maven 2.배치 핵심패턴 - read : 데이터베이스, 파일, 큐에서 다량의 데이터 조회 - process : 특정 방법으로 데이터를 가공 - write : 데이터를 수정된 양식으로 다시 저장. 3. 배치시나리오 - 배치 프로세스를 주기적으로 커밋 - 동시 다발적이 ㄴjob의 배치 처리, 대용량 병렬 처리 - 실패 후 수동 또는 스케줄링에 의한 재시작 - 의존관계가 있는 step 여러개를 순차적으로 처리 - 조건적 flow 구성을 통한 체계적이고 유연한 배치 모델 구성 - 반복, 재시도(잠깐동안의 장애로 인한 실패시 재시도), skip 처리 4. 아키텍처..
spring batch의 핵심 10가지
spring batch의 핵심 10가지 1. 왜 spring batch를 사용하는가? 2. 멱등성은 어떻게 유지하는가? 3. spring batch 메타데이터 테이블의 종류는 뭐가 있는가? 4. 배치 중간 실패 시 어떻게 처리하는가? - > skip, retry 기능 제공. 5. spring batch multi thread vs partitioning 의 차이 정해진 시간안에 처리해야하는 데이터가 많을 경우 성능을 높이기 위해 partitioning을 사용. 6. spring batch에서 왜 트랜잭션관리를 왜 chunk 단위로 하는지. (청크기반에 개념을 정리해보기) 7. tasklet vs item(Reader, Processor, Writer) 의 차이점. 8. Cursor 기반 vs Paging..
@Autowired, @Inject, @Resource 의 차이
https://codingnojam.tistory.com/13 [Spring] @Autowired, @Inject, @Resource 차이점 비교정리 안녕하세요 코딩노잼입니다. 오늘은 의존성 주입에 사용하는 애너테이션 @Autowired, @Inject, @Resource에 대해서 각각에 대해 어떤 특징과 차이점이 있는지 알아보겠습니다. 예시로 사용할 클래스는 codingnojam.tistory.com
![[Job parameter] 오류 _ Step already complete or not restartable, so no action to execute : All steps already completed or no steps configured for this job.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXK2OP%2FbtrKZe7TEG5%2F1bK5N1RelxEPnvFZpqJak0%2Fimg.png)
[Job parameter] 오류 _ Step already complete or not restartable, so no action to execute : All steps already completed or no steps configured for this job.
job parameter를 넣고 job을 실행했을 때 , 파라미터값이 달라도 step_execution_id 가 같은 게 참조되고 complited 되어있으니 step을 실행시키지 않는다는 오류가 발생했다. // All steps already completed or no steps configured for this job. Step already complete or not restartable, so no action to execute: StepExecution: id=4, version=3, name=helloStep2, status=COMPLETED, exitStatus=COMPLETED, readCount=0, filterCount=0, writeCount=0 readSkipCount=0, ..