Skip to content

Commit

Permalink
Merge pull request 9oorm-Oreum#1 from 9oorm-Oreum/feat/batch
Browse files Browse the repository at this point in the history
Feat/batch
  • Loading branch information
Song-EunJu authored Nov 17, 2022
2 parents 884660b + ff6fab6 commit b9e644d
Show file tree
Hide file tree
Showing 7 changed files with 141 additions and 8 deletions.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ dependencies {
annotationProcessor 'org.projectlombok:lombok'
implementation 'mysql:mysql-connector-java'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.boot:spring-boot-starter-batch'
}

tasks.named('test') {
Expand Down
93 changes: 93 additions & 0 deletions src/main/java/com/example/goorm/FileItemReaderJobConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
//package com.example.goorm;
//
//import com.example.goorm.oreum.CsvReader;
//import com.example.goorm.oreum.CsvWriter;
//import com.example.goorm.oreum.Oreum;
//import com.example.goorm.oreum.repository.OreumRepository;
//import lombok.RequiredArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.batch.core.Job;
//import org.springframework.batch.core.Step;
//import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
//import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
//import org.springframework.batch.item.ItemProcessor;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//@Slf4j
//@Configuration
//@RequiredArgsConstructor
//public class FileItemReaderJobConfig {
// private final JobBuilderFactory jobBuilderFactory;
// private final StepBuilderFactory stepBuilderFactory;
//
// private final OreumRepository oreumRepository;
// private final CsvReader csvReader;
// private final CsvWriter csvWriter;
//
// private static final int chunkSize = 366;
//
// private static int monthCheck = 1;
// private static int dayCheck = 1;
//
// // csvFileItemReaderJob 라는 이름의 job 생성
// @Bean
// public Job csvFileItemReaderJob() {
// return jobBuilderFactory.get("csvFileItemReaderJob")
// .start(csvFileItemReaderStep())
// .build();
// }
//
// @Bean
// public ItemProcessor<String, Oreum> csvProcessor() {
// return oreumStr -> {
// String[] lineArr = oreumStr.split(",");
// String name = lineArr[0];
// String type = lineArr[1].split("/")[1];
// String pos = lineArr[2];
// System.out.println(name+" "+type+" "+pos);
// double x = Double.parseDouble(pos.split(" ")[0]);
// double y = Double.parseDouble(pos.split(" ")[1]);
// double z = Double.parseDouble(pos.split(" ")[2]);
//
// Oreum oreum = Oreum.builder()
// .name(name)
// .xPos(x)
// .yPos(y)
// .zPos(z)
// .month(monthCheck)
// .day(dayCheck)
// .build();
//
// oreum.toTypeEnum(type);
// oreumRepository.save(oreum);
// if((monthCheck == 1 || monthCheck == 3 || monthCheck == 5 || monthCheck == 7
// || monthCheck == 8 || monthCheck == 10 || monthCheck ==12) && dayCheck == 31) {
// monthCheck++;
// dayCheck = 0;
// }
// else if(monthCheck == 2 && dayCheck == 29){
// monthCheck++;
// dayCheck = 0;
// }
// else if((monthCheck == 4 || monthCheck == 6 || monthCheck ==9 || monthCheck == 11) && dayCheck == 30){
// monthCheck++;
// dayCheck = 0;
// }
// dayCheck++;
// return oreum;
// };
// }
//
// // csvFileItemReaderStep 이라는 이름의 Step 생성
// @Bean
// public Step csvFileItemReaderStep() {
// return stepBuilderFactory.get("csvFileItemReaderStep")
// .<String, Oreum>chunk(chunkSize)
// // Reader 에서 읽어올 타입 - String, Writer에 넘겨줄 타입이 Oreum
// .reader(csvReader.csvFileItemReader()) // 일단 csv에서 String 읽기
// .processor(csvProcessor()) // String을 가공
// .writer(csvWriter)
// .build();
// }
//}
4 changes: 2 additions & 2 deletions src/main/java/com/example/goorm/GoormApplication.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.example.goorm;

import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableBatchProcessing
public class GoormApplication {

public static void main(String[] args) {
SpringApplication.run(GoormApplication.class, args);
}

}
4 changes: 2 additions & 2 deletions src/main/java/com/example/goorm/WebMvcConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("https://9oorm-oreum-frontend.vercel.app/")
.allowedMethods("OPTIONS", "GET", "POST", "PUT", "DELETE");
.allowedOrigins("http://localhost:3000/", "https://9oorm-oreum-frontend.vercel.app/")
.allowedMethods("GET", "POST");
}
}
22 changes: 22 additions & 0 deletions src/main/java/com/example/goorm/oreum/CsvReader.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//package com.example.goorm.oreum;
//
//import lombok.RequiredArgsConstructor;
//import org.springframework.batch.item.file.FlatFileItemReader;
//import org.springframework.batch.item.file.mapping.DefaultLineMapper;
//import org.springframework.batch.item.file.transform.DelimitedLineTokenizer;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.core.io.ClassPathResource;
//
//@Configuration
//@RequiredArgsConstructor
//public class CsvReader {
// @Bean
// public FlatFileItemReader<String> csvFileItemReader() {
// /* file read */
// FlatFileItemReader<String> flatFileItemReader = new FlatFileItemReader<>();
// flatFileItemReader.setResource(new ClassPathResource("C:\\Users\\Windows10\\Desktop\\오름.txt"));
// flatFileItemReader.setEncoding("UTF-8"); // encoding
// return flatFileItemReader;
// }
//}
21 changes: 21 additions & 0 deletions src/main/java/com/example/goorm/oreum/CsvWriter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
//package com.example.goorm.oreum;
//
//import com.example.goorm.oreum.repository.OreumRepository;
//import lombok.RequiredArgsConstructor;
//import org.springframework.batch.item.ItemWriter;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.ArrayList;
//import java.util.List;
//
//@Configuration
//@RequiredArgsConstructor
//public class CsvWriter implements ItemWriter<Oreum> {
//
// private final OreumRepository oreumRepository;
//
// @Override
// public void write(List<? extends Oreum> list) throws Exception {
// oreumRepository.saveAll(new ArrayList<Oreum>(list));
// }
//}
4 changes: 0 additions & 4 deletions src/main/java/com/example/goorm/oreum/OreumService.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,10 @@
import com.example.goorm.oreum.repository.OreumRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.server.ResponseStatusException;

import java.io.*;
import java.util.List;

@Service
@RequiredArgsConstructor
Expand Down Expand Up @@ -52,9 +50,7 @@ public void readCsv(){
int monthCheck = 1;
int dayCheck = 1;

int cnt =0 ;
while((line = br.readLine()) != null) {
System.out.println(cnt++);
String[] lineArr = line.split(",");
String name = lineArr[0];
String type = lineArr[1].split("/")[1];
Expand Down

0 comments on commit b9e644d

Please sign in to comment.