Spring|Spring-boot117 Spring Security(1) Spring boot를 이용하면 tomcat의 기본 port : 8080이므로 변경한다. 페이지가 아닌 SecurityContectHoler에서 Authentication을 얻어서 각 url의 요청에 권한 및 인증을 진행해본다. @RestController public class HomeController { @RequestMapping("/") public String index(){ return "home"; } @RequestMapping("/auth") public Authentication auth(){ return SecurityContextHolder.getContext() .getAuthentication(); } @PreAuthorize("hasAnyAuthority('ROLE_USER'.. 2021. 3. 21. Spring Security 스프링이 해결하려는 문제는 웹사이트의 보안에 관한 문제입니다. 웹사이트에서는 각종 서비스를 하기 위한 리소스와 서비스를 사용하는 유저들의 개인 정보를 사용하여 서비스를 제공합니다. 리소스를 보호하기 위해서는 웹 사이트에서는 두 가지 보안 정책을 설정해야 합니다. 1. 서버 리소스 - 서버 자체의 정보 2. 유저들의 개인정보 - 유저들이 사이트를 이용하면서 만들어내는 정보들 인증 (Authentication) 사이트에 접근하는 사람이 누구인지 시스템이 알아야 합니다. 간단히 웹사이트를 둘러볼 익명 사용자(anonymous user)를 허용하기도 하지만, 특정 기능을 이용하기 위해서는 반드시 로그인하는 과정이 필요합니다. 우리는 username/pwd를 입력하여 로그인을 하는 경우와 구글, 카카오등 sns .. 2021. 3. 21. Spring Batch JpaItemWriter JpaItemWriter는 JPA EntityManager를 이용해서 Entity를 DB에 write 해줍니다. jpa에 관한 설명은 깊게 하지 않고 간단히만 하겠습니다. 엔티티 매니저는 엔티티 매니저 팩토리에 생성합니다. 자바를 직접 다루지 않고 스프링을 사용하면 빈으로 등록이 되어 있어 직접 생성해 줄 필요가 없습니다. 이 엔티티 내부에는 영속성 콘텍스트가 존재합니다. 이 영속성 컨텍스는 엔티티 매니저를 통해서 접근할 수 있습니다. 영속성 콘텍스트는 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스와 같습니다. 1차 캐시, 동일성 보장, 트랜잭션을 지원하는 쓰기 지연, 지연 로딩 기능을 사용할 수 있는 것도 영속성 콘텍스트 때문입니다. 이 저장된 엔티티는 플러시 시점에 데이터베이.. 2021. 3. 6. Spring Batch JdbcBatchItemWriter ItemReader는 다양한 매체의 아이템들을 읽을 수 있습니다. ItemWriter는 출력이 가능합니다. 이 JdbcBatchItemWriter는 jdbc를 사용해 db에 update, insert, delete 쿼리를 날릴 수 있습니다. 이름에 Batch가 있는 이유는 쿼리를 일괄 실행할 수 있기 때문입니다. 한 건씩 하는 것이아닌 bulk insert/update/delete를 할 수 있다는 것인데요 즉 여러개의 쿼리를 한 번에 직접 데이터베이스에 쿼리 하는 것입니다. 먼저 mysql설정을 조금 손봐야합니다. bulk연산을 사용하기 위해 url설정을 추가해 줍니다. jdbc-url: jdbc:mysql://127.0.01:3306/spring_batch?characterEncoding=UTF-8&s.. 2021. 3. 6. Spring Batch ItemWriter FlatFileItemWriter를 이용해 CSV 파일에 데이터를 작성하는 연습을 합니다. 이 클래스는 데이터가 매핑된 객체를 파일로 write 합니다. 이 CSV 파일을 사용하기 위해선 BeanWrapperFiledExtractor클래스가 필요합니다. @Configuration @Slf4j public class ItemWriterConfiguration { private final JobBuilderFactory jobBuilderFactory; private final StepBuilderFactory stepBuilderFactory; public ItemWriterConfiguration(JobBuilderFactory jobBuilderFactory, StepBuilderFactory step.. 2021. 3. 6. Spring Batch ItemReader ItemReader는 배치에서 처리할 아이템을 만들거나 읽는 역할을 합니다. - 배치 대상 데이터를 읽기 위한 설정 : 파일, DB , 네트워크 등에서 읽기 위함이다. - Step에 ItemReader 기본 구현체 : file, jdbc, jpa, hibernate, kafka, etc.. ItemReader 인터페이스를 구현한 JpaCursorItemReader 와 JdbcCursorItemReader가 존재합니다. 이 구현체들은 ItemStream또한 구현하고 있습니다. ItemReader의 인터페이스입니다. ItemStream 인터페이스입니다. 아이템을 스트림 처리할 수 있게 도와줍니다. 매개변수는 Job과 Step의 상태를 저장하는 ExecutionContext인걸 확인할 수 있습니다. 이건 It.. 2021. 3. 6. Spring Batch Parameter 배치를 실행에 필요한 값을 parameter를 통해 외부에서 주입 JobParameters는 외부에서 주입된 parameter를 관리하는 객체 parameter를 JobParameters와 Spring EL로 접근 (두 가지 사용 가능) - String parameter = jobParameters.getString(key, defaultValue); - @Value("#{jobParameters [key]}") 우선 jobParameters를 사용해보자. tasklet을 사용할 때이다. private Tasklet tasklet(){ List items = getItems(); return (contribution, chunkContext) -> { StepExecution stepExecution =.. 2021. 2. 28. Spring Batch Architecture www.tutorialspoint.com/spring_batch/spring_batch_architecture.htm Spring Batch - Architecture - Tutorialspoint Spring Batch - Architecture Following is the diagrammatic representation of the architecture of Spring Batch. As depicted in the figure, the architecture contains three main components namely, Application, Batch Core, and Batch Infrastructure. Application www.tutorialspoint.com 스프링 배치 아.. 2021. 2. 27. Spring Batch step 작성해보기 job에서 여러 가지 step을 만들기 연습이다. @Bean public Step shareStep(){ return stepBuilderFactory.get("shareStep") .tasklet((contribution, chunkContext) ->{ StepExecution stepExecution = contribution.getStepExecution(); ExecutionContext stepExecutionContext = stepExecution.getExecutionContext(); stepExecutionContext.putString("stepKey", "step execution context"); JobExecution jobExecution = stepExecution.get.. 2021. 2. 27. Spring Batch Job Repository Job Repository는 스프링 배치에 대한 메타 데이터를 저장합니다. 그 구조는 spring-batch-core에 존재합니다. mysql을 사용하므로 mysql.sql을 복사해 생성해보겠습니다. 다음과 같이 여러 테이블이 생성되었습니다. 테이블마다 역할은 다음과 같습니다. BATCH_JOB_INSTACE - job이 실행되며 생성되는 최상위 계층의 테이블입니다 - job_name과 job_key를 기준으로 하나의 row가 생성되며, 같은 name, key는 저장될 수 없습니다. - job_key는 BATCH_JOB_EXECUTION_PARAMS에 저장되는 Parameter를 나열해 암호화해 저장합니다. - JobInstace클래스와 매핑 됩니다. BATCH_JOB_EXECTION - job이 실행되.. 2021. 2. 27. 이전 1 ··· 5 6 7 8 9 10 11 12 다음