Skip to content

Commit

Permalink
mod: cors 허용 url 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
Song-EunJu committed Nov 17, 2022
1 parent 884660b commit 93b3264
Show file tree
Hide file tree
Showing 8 changed files with 151 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
10 changes: 10 additions & 0 deletions src/main/java/com/example/goorm/CsvFieldDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.example.goorm;

public class CsvFieldDto {
private String name;
private String type;
private String pos;
// String name = lineArr[0];
// String type = lineArr[1].split("/")[1];
// String pos = lineArr[2];
}
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 93b3264

Please sign in to comment.