- aisTargetImportJob: S&P Global AIS API 연동 (매 분 15초) - AIS Target 조회 API (MMSI/시간/공간/폴리곤/WKT 검색) - 항해 조건 필터 검색 API (SOG/COG/Heading/Destination/Status) - Caffeine 캐시 적용 (TTL 120분, 최대 30만건) - partitionManagerJob: 매일 1회 일별,월별 파티션 자동 생성 [개선] - API context-path: /snp-api로 변경 (다른 API 서비스의 Proxy 설정 충돌 방지) - BaseApiReader 상태 초기화 로직 추가 (재실행 시 0건 버그 수정) - logback-spring.xml: 로그 파일 분리 및 롤링 정책 적용
177 lines
6.2 KiB
XML
177 lines
6.2 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
|
http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-parent</artifactId>
|
|
<version>3.2.1</version>
|
|
<relativePath/>
|
|
</parent>
|
|
|
|
<groupId>com.snp</groupId>
|
|
<artifactId>snp-batch</artifactId>
|
|
<version>1.0.0</version>
|
|
<name>SNP Batch</name>
|
|
<description>Spring Batch project for JSON to PostgreSQL with Web GUI</description>
|
|
|
|
<properties>
|
|
<java.version>17</java.version>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<maven.compiler.source>17</maven.compiler.source>
|
|
<maven.compiler.target>17</maven.compiler.target>
|
|
|
|
<!-- Dependency versions -->
|
|
<spring-boot.version>3.2.1</spring-boot.version>
|
|
<spring-batch.version>5.1.0</spring-batch.version>
|
|
<postgresql.version>42.7.6</postgresql.version>
|
|
<lombok.version>1.18.30</lombok.version>
|
|
<quartz.version>2.5.0</quartz.version>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<!-- Spring Boot Starter Web -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-web</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Spring Boot Starter Batch -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-batch</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Spring Boot Starter Data JPA -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
|
</dependency>
|
|
|
|
<!-- PostgreSQL Driver -->
|
|
<dependency>
|
|
<groupId>org.postgresql</groupId>
|
|
<artifactId>postgresql</artifactId>
|
|
<version>${postgresql.version}</version>
|
|
</dependency>
|
|
|
|
<!-- Spring Boot Starter Thymeleaf (for Web GUI) -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Spring Boot Starter Quartz (for Job Scheduling) -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-quartz</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Jackson for JSON processing -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-databind</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Lombok for reducing boilerplate code -->
|
|
<dependency>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
<version>${lombok.version}</version>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Spring Boot DevTools -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-devtools</artifactId>
|
|
<scope>runtime</scope>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Spring Boot Actuator for monitoring -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
|
</dependency>
|
|
|
|
<!-- WebClient for REST API calls -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-webflux</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Springdoc OpenAPI (Swagger) for API Documentation -->
|
|
<dependency>
|
|
<groupId>org.springdoc</groupId>
|
|
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
|
<version>2.3.0</version>
|
|
</dependency>
|
|
|
|
<!-- Caffeine Cache -->
|
|
<dependency>
|
|
<groupId>com.github.ben-manes.caffeine</groupId>
|
|
<artifactId>caffeine</artifactId>
|
|
<version>3.1.8</version>
|
|
</dependency>
|
|
|
|
<!-- JTS (Java Topology Suite) - 공간 연산 라이브러리 -->
|
|
<dependency>
|
|
<groupId>org.locationtech.jts</groupId>
|
|
<artifactId>jts-core</artifactId>
|
|
<version>1.19.0</version>
|
|
</dependency>
|
|
|
|
<!-- Test Dependencies -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.springframework.batch</groupId>
|
|
<artifactId>spring-batch-test</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
<version>${spring-boot.version}</version>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.11.0</version>
|
|
<configuration>
|
|
<source>17</source>
|
|
<target>17</target>
|
|
<encoding>UTF-8</encoding>
|
|
<annotationProcessorPaths>
|
|
<path>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
<version>${lombok.version}</version>
|
|
</path>
|
|
</annotationProcessorPaths>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|