최초 커밋

master
mjkhan21 8 months ago
commit 4611271b5d

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

@ -0,0 +1,113 @@
<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>2.7.18</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cokr.xit.interfaces</groupId>
<artifactId>xit-sntris-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>xit-sntris-interface</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>17</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
<repositories>
<repository>
<id>mvn2s</id>
<url>https://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe</id>
<url>https://maven.egovframe.go.kr/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>maven-public</id>
<url>https://nas.xit.co.kr:8888/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>cokr.xit.boot</groupId>
<artifactId>xit-foundation-starter</artifactId>
<version>23.04.01-SNAPSHOT</version>
</dependency>
<dependency> <!-- 서울 세외수입 연계 -->
<groupId>cokr.xit.interfaces</groupId>
<artifactId>xit-sntris</artifactId>
<version>23.04.01-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<finalName>xit-sntris-interface</finalName>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<excludes>
<exclude>intf-conf/*.*</exclude>
<exclude>spring/*.*</exclude>
<exclude>application.yml</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>com.github.therapi</groupId>
<artifactId>therapi-runtime-javadoc-scribe</artifactId>
<version>0.15.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<outputDirectory>deploy</outputDirectory>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="sntris">
<property name="resources" value="src/main/resources" />
<property name="deploy" value="deploy" />
<target name="sntris">
<copy todir="${deploy}/intf-conf">
<fileset dir="${resources}/intf-conf" />
</copy>
<copy todir="${deploy}/spring">
<fileset dir="${resources}/spring" />
</copy>
<copy file="${resources}/application.yml" todir="${deploy}" />
<delete file="xit-sntris-interface.zip" />
<zip destfile="release/xit-sntris-interface.zip" basedir="${deploy}" compress="true" />
</target>
</project>

@ -0,0 +1,24 @@
package cokr.xit.interfaces.sntris;
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ImportResource;
import cokr.xit.foundation.boot.FoundationApplication;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
@ImportResource("classpath:spring/context-*.xml")
public class SntrisInterfaceApplication extends FoundationApplication {
public static void main(String[] args) {
SpringApplication.run(SntrisInterfaceApplication.class, args);
}
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.info(new Info()
.title("서울 세외수입 연계 시스템")
);
}
}

@ -0,0 +1,53 @@
server:
port: 18080
servlet:
context-path: /
ssl:
enabled: false
key-store: ssl/.keystore
key-store-type: PKCS12
key-store-password: 5811807
spring:
application:
name: xit-sntris-interface
main:
allow-bean-definition-overriding: true
sql:
init:
platform: mariadb 또는 oracle(해당 내용만 지정)
datasource:
hikari:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
# MariaDB
jdbc-url: jdbc:log4jdbc:mariadb://호스트:포트/DB이름?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&useSSL=false&autocommit=false
# Oracle
# jdbc-url: jdbc:log4jdbc:oracle:thin:@호스트:포트:SID
username: 사용자 아이디
password: 사용자 비밀번호
auto-commit: false
mvc:
static-path-pattern: /resources/**,/files/**
web:
resources:
static-locations: /resources/,file:files/
messageSource:
basenames:
- classpath:message/message-common
- classpath:org/egovframe/rte/fdl/property/messages/properties
springdoc:
swagger-ui:
path: /swagger.html
propertyService:
properties:
- tempDir: C:\temp
- pageUnit: 10
- pageSize: 10
- permitAccess: /intf/**/*

@ -0,0 +1,21 @@
{
"host": "http://98.33.4.167:8082",
/* 운영: http://98.33.4.164
개발: http://98.33.4.167:8082
*/
"apis": [
{ /* 부과 */
"name": "imposition",
"uri": "/BugaWebService/BugaWebService"
},
{ /* 사전통보 - 과태료 대장 등록 */
"name": "prenotice",
"uri": "/SntrPreNoticeWebService/SntrPreNoticeWebService"
},
{ /* 사전통보 - 과태료 대장 조회 */
"name": "fileoffer",
"uri": "/SntrFileOfferWebService/SntrFileOfferWebService"
}
]
}

@ -0,0 +1,4 @@
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
log4jdbc.drivers=org.mariadb.jdbc.Driver

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 60초마다 설정 파일의 변경을 확인 하여 변경시 갱신 -->
<configuration scan="true" scanPeriod="60 seconds">
<springProperty scope="context" name="applicationName" source="spring.application.name"/>
<property name="LOG_PATH" value="logs"/>
<property name="LOG_FILE_NAME" value="${applicationName}"/>
<property name="ERR_LOG_FILE_NAME" value="${LOG_FILE_NAME}-error"/>
<property name="LOG_PATTERN" value="%d{HH:mm:ss.SSS} %-5level [%logger{0}:%line] - %msg%n"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/${LOG_FILE_NAME}.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
<fileNamePattern>${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>30</maxHistory><!-- 로그파일 보관주기(일)-->
<!--<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>-->
</rollingPolicy>
</appender>
<appender name="Error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>${LOG_PATH}/${ERR_LOG_FILE_NAME}.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축 -->
<fileNamePattern>${LOG_PATH}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 파일당 최고 용량 kb, mb, gb -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 일자별 로그파일 최대 보관주기(~일), 해당 설정일 이상된 파일은 자동으로 제거-->
<maxHistory>60</maxHistory>
</rollingPolicy>
</appender>
<root level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="Error"/>
</root>
<logger name="org.apache.commons" level="OFF" additivity="false"/>
<logger name="org.mariadb" level="OFF" additivity="false"/>
<logger name="jdbc.connection" level="OFF" additivity="false"/>
<logger name="jdbc.sqlonly" level="OFF" additivity="false"/>
<logger name="jdbc.resultset" level="OFF" additivity="false"/>
<logger name="jdbc.resultsettable" level="OFF" additivity="false"/>
<logger name="jdbc.audit" level="OFF" additivity="false"/>
<logger name="com.zaxxer" level="OFF" additivity="false"/>
<logger name="jdbc.sqltiming" level="DEBUG" />
<logger name="org.quartz" level="Error" additivity="false"/>
<!-- 특정패키지 로깅레벨 설정 -->
<logger name="cokr.xit" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="Error"/>
</logger>
</configuration>

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.foundation.test.TestMapper">
<insert id="insert" parameterType="map">${sql}</insert>
<update id="update" parameterType="map">${sql}</update>
<delete id="delete" parameterType="map">${sql}</delete>
<update id="commit">COMMIT</update>
</mapper>

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="utility">
<!-- For Maria DB -->
<sql id="paging-prefix"><if test="fetchSize != null and fetchSize &gt; 0">
SELECT QROWS.* FROM (
SELECT ROW_NUMBER() OVER(<include refid="utility.sortBy" />) ROW_NUM
, COUNT(*) OVER() TOT_CNT, QBODY.*
FROM (</if></sql>
<sql id="paging-suffix"><if test="fetchSize != null and fetchSize &gt; 0"> ) QBODY
) QROWS
WHERE ROW_NUM BETWEEN ((#{pageNum} - 1) * #{fetchSize}) + 1 AND (#{pageNum} * #{fetchSize})</if></sql>
<select id="foundRows" resultType="dataobject">/* 전체 결과수 가져오기(utility.foundRows) */
SELECT FOUND_ROWS() TOT_CNT</select>
<sql id="sortBy"><if test="orderBy != null and orderBy != ''">ORDER BY ${orderBy}</if></sql>
<sql id="orderBy"><if test="fetchSize == null or fetchSize &lt; 1"><include refid="utility.sortBy" /></if></sql>
<sql id="now"><if test="_databaseId == 'mariadb'">DATE_FORMAT(CURRENT_TIMESTAMP, '%Y%m%d%H%i%s')</if>
<if test="_databaseId == 'oracle'">TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS')</if></sql>
<sql id="selectNow">SELECT<include refid="utility.now" />NOW FROM DUAL</sql>
<sql id="today"><if test="_databaseId == 'mariadb'">DATE_FORMAT(CURRENT_DATE, '%Y%m%d')</if>
<if test="_databaseId == 'oracle'">TO_CHAR(CURRENT_DATE, 'YYYYMMDD')</if></sql>
<sql id="selectToday">SELECT<include refid="utility.today" />TODAY FROM DUAL</sql>
<sql id="thisDay">NVL(#{thisDay},<include refid="utility.today" />)</sql>
<sql id="selectThisDay">SELECT<include refid="utility.thisDay" />THIS_DAY FROM DUAL</sql>
</mapper>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="cacheEnabled" value="false" />
<setting name="jdbcTypeForNull" value="NULL" />
<setting name="callSettersOnNulls" value="true"/>
</settings>
<typeAliases>
<typeAlias alias="egovMap" type="org.egovframe.rte.psl.dataaccess.util.EgovMap"/>
<typeAlias alias="dataobject" type="cokr.xit.foundation.data.DataObject"/>
</typeAliases>
<typeHandlers>
<typeHandler handler="cokr.xit.foundation.data.RowValueHandler" javaType="java.lang.Object"/>
</typeHandlers>
</configuration>
Loading…
Cancel
Save