분류 전체보기28 2 - Spring Batch DB 스키마 살펴보기 Job 관련 테이블 BATCH_JOB_INSTANCE Job이 실행될 때 JobInstance 정보가 저장되며 job_name과 job_key를 키로 하여 하나의 데이터 저장 동일한 job_name과 job_key로 중복 저장될 수 없다. JobInstance : Job 실행 단위 BATCH_JOB_EXECUTION Job의 실행정보가 저장되며 Job 생성, 시작 시간, 종료 시간, 실행 상태, 메세지 등을 관리 BATCH_JOB_EXECUTION_PARAMS Job과 함께 실행되는 JobParameter 정보를 저장 JobParameter : JobInstance를 구분하기 위한 객체 BATCH_JOB_EXECUTION_CONTEXT Job의 실행동안 여러가지 상태 정보, 공유 데이터를 직렬화(Json.. 2021. 11. 5. 1 - @EnableBatchProcessing @EnableBatchProcessing 총 4개의 설정 클래스를 실행시키며 스프링 배치의 모든 초기화 및 실행 구성이 이루어진다. 스프링 부트 배치의 자동 설정 클래스가 실행됨으로 빈으로 등록된 모든 Job을 검색해서 초기화와 동시에 Job을 수행하도록 구성됨. @EnableBatchProcessing 어노테이션에 의해 아래 번호 순서대로 실행된다. EnableBatchProcessing SimpleBatchConfiguration JobBuilderFactory와 StepBuilderFactory 생성 프록시 객체로 생성 -> Job, Step의 빈 생성 시점은 Job, Step이 실행되는 시점 BatchConfigurerConfiguration BasicBatchConfigurer : 프록시 객체의.. 2021. 11. 3. 컬렉션과 부가 기능 - 17 JPA와 컬렉션 하이버네이트는 엔티티를 영속 상태로 만들 때 컬렉션 필드를 하이버네이트에서 준비한 컬렉션으로 감싸서 허용한다. @Entity public class Team { @Id private String id; @OneToMany @JoinColumn private Collection memberList = new ArrayList(); } Team team = new Team(); System.out.println("before persist = " + team.getMemberList().getClass()); entityManager.persist(team); System.out.println("after persist = " + team.getMemberList().getClass()); .. 2021. 8. 10. 애플리케이션과 영속성 관리 - 16 ] 스프링 컨테이너의 기본 전략 스프링 컨테이너는 트랜잭션 범위의 영속성 컨테스트 전략을 기본으로 사용한다. 트랜잭션 범위의 영속성 컨텍스트 전략이란? 트랜잭션 범위와 영속성 컨텍스트의 생존 범위가 같다. 즉, 트랜잭션을 시작할 때 영속성 컨텍스트를 생성하고 트랜잭션이 끝날 때 영속성 컨텍스트를 종료한다. 그리고 같은 트랜잭션 안에서는 항상 같은 영속성 컨텍스트에 접근한다. 스프링 프레임워크를 사용하면 비즈니스 로직을 시작하는 서비스 계층에 @Transactional 어노테이션을 사용해서 트랜잭션을 시작한다. 이 어노테이션이 있으면 호출한 메소드를 실행하기 직전에 스프링의 트랜잭션 AOP가 먼저 동작한다. 스프링 트랜잭션 AOP는 대상 메소드를 호출하기 직전에 트랜잭션을 시작하고, 대상 메소드가 정상 종.. 2021. 8. 8. 이전 1 2 3 4 5 ··· 7 다음