fix : 테스트 클래스 삭제
parent
f922ed7968
commit
60ac1e7560
@ -1,55 +0,0 @@
|
|||||||
package kr.xit.fims.framework.biz.cmm.dao;
|
|
||||||
|
|
||||||
import kr.xit.fims.framework.core.utils.XitMap;
|
|
||||||
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
|
||||||
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface XitTestMapper {
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 조회 테스트</pre>
|
|
||||||
* @return XitMap 요청처리 후 응답객체
|
|
||||||
* @throws SQLException XitMap 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 3. 18.
|
|
||||||
*/
|
|
||||||
public XitMap findTest() throws SQLException;
|
|
||||||
public XitMap findTest(String param) throws SQLException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 등록 테스트</pre>
|
|
||||||
* @return
|
|
||||||
* @throws SQLException int 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 3. 20.
|
|
||||||
*/
|
|
||||||
public int addTest() throws SQLException;
|
|
||||||
public int addTest(String error_code) throws SQLException;
|
|
||||||
public int addTest(Map<String, String> param) throws SQLException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 등록 테스트
|
|
||||||
* -n개의 단위로 insert를 수행 한다.
|
|
||||||
* </pre>
|
|
||||||
* @param listParam
|
|
||||||
* @return
|
|
||||||
* @throws SQLException int 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2021. 1. 17.
|
|
||||||
*/
|
|
||||||
public int addListTest(List<Map<String, String>> listParam) throws SQLException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 접속로그 테이블의 테스트 데이터 일괄 삭제</pre>
|
|
||||||
* @param param
|
|
||||||
* @return int 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2021. 1. 17.
|
|
||||||
*/
|
|
||||||
public int removesXitConectLogForTestData(Map<String, String> param);
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
package kr.xit.fims.framework.biz.cmm.service;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @업무그룹명: XIT프레임워크 테스트 Service
|
|
||||||
* @설명: 테스트를 위한 서비스를 기술 한다.
|
|
||||||
* @최초작성일: 2020. 3. 18. 오후 6:13:48
|
|
||||||
* @최초작성자: 박민규
|
|
||||||
* @author (주)엑스아이티 개발팀
|
|
||||||
* @since 2002. 2. 2.
|
|
||||||
* @version 1.0 Copyright(c) XIT All rights reserved.
|
|
||||||
*/
|
|
||||||
public interface XitTest2Service {
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 연쇄적 서비스 호출 시 트랜잭션 테스트</pre>
|
|
||||||
* void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 3. 20.
|
|
||||||
*/
|
|
||||||
public void transactionOfServiceChainTest();
|
|
||||||
}
|
|
@ -1,59 +0,0 @@
|
|||||||
package kr.xit.fims.framework.biz.cmm.service;
|
|
||||||
|
|
||||||
import kr.xit.fims.framework.core.utils.XitMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @업무그룹명: XIT프레임워크 테스트 Service
|
|
||||||
* @설명: 테스트를 위한 서비스를 기술 한다.
|
|
||||||
* @최초작성일: 2020. 3. 18. 오후 6:13:48
|
|
||||||
* @최초작성자: 박민규
|
|
||||||
* @author (주)엑스아이티 개발팀
|
|
||||||
* @since 2002. 2. 2.
|
|
||||||
* @version 1.0 Copyright(c) XIT All rights reserved.
|
|
||||||
*/
|
|
||||||
public interface XitTestService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 조회 테스트</pre>
|
|
||||||
* @return XitMap 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 3. 18.
|
|
||||||
*/
|
|
||||||
public XitMap findTest();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 트랜잭션 테스트</pre>
|
|
||||||
* void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 3. 20.
|
|
||||||
*/
|
|
||||||
public void transactionTest();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 연쇄적 서비스 호출 시 트랜잭션 테스트</pre>
|
|
||||||
* void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 3. 20.
|
|
||||||
*/
|
|
||||||
public void transactionOfServiceChainTest();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 배치등록 테스트</pre>
|
|
||||||
* @return int 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2021. 1. 17.
|
|
||||||
*/
|
|
||||||
public int insertBatchTestBySingle(int dataSize);
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 배치등록 테스트
|
|
||||||
* -n개의 단위로 insert를 수행 한다.
|
|
||||||
* </pre>
|
|
||||||
* @return int 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2021. 1. 17.
|
|
||||||
*/
|
|
||||||
public int insertBatchTestByBulk(int dataSize);
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
package kr.xit.fims.framework.biz.cmm.service.bean;
|
|
||||||
|
|
||||||
import cokr.xit.foundation.component.AbstractServiceBean;
|
|
||||||
import kr.xit.fims.framework.biz.cmm.dao.XitTestMapper;
|
|
||||||
import kr.xit.fims.framework.biz.cmm.service.XitTest2Service;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class XitTest2ServiceBean extends AbstractServiceBean implements XitTest2Service{
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private XitTestMapper xitTestMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void transactionOfServiceChainTest() {
|
|
||||||
/**
|
|
||||||
* DB 등록
|
|
||||||
*/
|
|
||||||
try {
|
|
||||||
xitTestMapper.addTest("22");
|
|
||||||
} catch (SQLException e) {
|
|
||||||
throw new RuntimeException("DB Insert FAIL", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* error 발생
|
|
||||||
*/
|
|
||||||
Integer.parseInt(null);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,214 +0,0 @@
|
|||||||
package kr.xit.fims.framework.biz.cmm.service.bean;
|
|
||||||
|
|
||||||
import cokr.xit.foundation.component.AbstractServiceBean;
|
|
||||||
import kr.xit.fims.framework.biz.cmm.dao.XitTestMapper;
|
|
||||||
import kr.xit.fims.framework.biz.cmm.service.XitTest2Service;
|
|
||||||
import kr.xit.fims.framework.biz.cmm.service.XitTestService;
|
|
||||||
import kr.xit.fims.framework.core.utils.XitMap;
|
|
||||||
import org.apache.ibatis.session.ExecutorType;
|
|
||||||
import org.apache.ibatis.session.SqlSession;
|
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class XitTestServiceBean extends AbstractServiceBean implements XitTestService{
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private XitTestMapper xitTestMapper;
|
|
||||||
@Resource
|
|
||||||
private XitTest2Service xitTest2Service;
|
|
||||||
@Autowired
|
|
||||||
private SqlSessionFactory sqlSessionFactory;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public XitMap findTest() {
|
|
||||||
XitMap result = new XitMap();
|
|
||||||
try {
|
|
||||||
result = xitTestMapper.findTest();
|
|
||||||
result = xitTestMapper.findTest("1");
|
|
||||||
} catch (SQLException e) {
|
|
||||||
throw new RuntimeException("DB 조회 테스트 FAIL");
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void transactionTest() {
|
|
||||||
/**
|
|
||||||
* DB 등록
|
|
||||||
*/
|
|
||||||
try {
|
|
||||||
xitTestMapper.addTest("00");
|
|
||||||
xitTestMapper.addTest("11");
|
|
||||||
} catch (SQLException e) {
|
|
||||||
throw new RuntimeException("DB Insert FAIL", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* error 발생
|
|
||||||
*/
|
|
||||||
String str = null;
|
|
||||||
str.toString();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void transactionOfServiceChainTest() {
|
|
||||||
/**
|
|
||||||
* DB 등록
|
|
||||||
*/
|
|
||||||
try {
|
|
||||||
xitTestMapper.addTest("00");
|
|
||||||
} catch (SQLException e) {
|
|
||||||
throw new RuntimeException("DB Insert FAIL", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 서비스 모듈 호출
|
|
||||||
*/
|
|
||||||
xitTest2Service.transactionOfServiceChainTest();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int insertBatchTestBySingle(int dataSize) {
|
|
||||||
final int BATCH_SIZE = 1000; //SQL 실행 단위
|
|
||||||
final boolean AUTO_COMMIT = true; //Auto Commit 여부. 2021.01.17 박민규- Spring Transaction 설정된 환경에서 true/false 차이 없음. Service 호출 시 Transaction Open... 동일하게 동작 함.
|
|
||||||
List<Map<String, String>> list = this.creatTestDataList(dataSize); //테스트 데이터 생성
|
|
||||||
|
|
||||||
//테스트 데이터 삭제
|
|
||||||
xitTestMapper.removesXitConectLogForTestData(null);
|
|
||||||
|
|
||||||
//open
|
|
||||||
//SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, AUTO_COMMIT);
|
|
||||||
//
|
|
||||||
//long startTime = System.currentTimeMillis();
|
|
||||||
//for(int i=0; i<list.size(); i++) {
|
|
||||||
// Map<String, String> param = list.get(i);
|
|
||||||
//
|
|
||||||
// //load
|
|
||||||
// sqlSession.insert("framework.xit.category.common.dao.XitTestMapper.addTest", param);
|
|
||||||
// if((i+1)%BATCH_SIZE == 0) {
|
|
||||||
// //execute
|
|
||||||
// sqlSession.flushStatements();
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
//long endTime = System.currentTimeMillis();
|
|
||||||
////execute
|
|
||||||
//sqlSession.flushStatements();
|
|
||||||
////close
|
|
||||||
//sqlSession.close();
|
|
||||||
//System.out.println("===============================================");
|
|
||||||
//System.out.println(String.format("일괄등록 테스트[총 %d건 처리소요 %d초]", list.size(), (endTime-startTime)/1000 ));
|
|
||||||
//System.out.println("===============================================");
|
|
||||||
|
|
||||||
try(SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, AUTO_COMMIT)){
|
|
||||||
|
|
||||||
long startTime = System.currentTimeMillis();
|
|
||||||
for(int i=0; i<list.size(); i++) {
|
|
||||||
Map<String, String> param = list.get(i);
|
|
||||||
|
|
||||||
//load
|
|
||||||
sqlSession.insert("kr.xit.fims.framework.biz.cmm.dao.XitTestMapper.addTest", param);
|
|
||||||
if((i+1)%BATCH_SIZE == 0) {
|
|
||||||
//execute
|
|
||||||
sqlSession.flushStatements();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
long endTime = System.currentTimeMillis();
|
|
||||||
//execute
|
|
||||||
sqlSession.flushStatements();
|
|
||||||
System.out.println("===============================================");
|
|
||||||
System.out.println(String.format("일괄등록 테스트[총 %d건 처리소요 %d초]", list.size(), (endTime-startTime)/1000 ));
|
|
||||||
System.out.println("===============================================");
|
|
||||||
}
|
|
||||||
|
|
||||||
return list.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int insertBatchTestByBulk(int dataSize) {
|
|
||||||
final int BATCH_SIZE = 1000; //SQL 실행 단위
|
|
||||||
final boolean AUTO_COMMIT = true; //Auto Commit 여부. 2021.01.17 박민규- Spring Transaction 설정된 환경에서 true/false 차이 없음. Service 호출 시 Transaction Open... 동일하게 동작 함.
|
|
||||||
List<Map<String, String>> list = this.creatTestDataList(dataSize); //테스트 데이터 생성
|
|
||||||
|
|
||||||
//테스트 데이터 삭제
|
|
||||||
xitTestMapper.removesXitConectLogForTestData(null);
|
|
||||||
|
|
||||||
//open
|
|
||||||
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, AUTO_COMMIT);
|
|
||||||
|
|
||||||
long startTime = System.currentTimeMillis();
|
|
||||||
List<Map<String, String>> listParam = new ArrayList<Map<String, String>>();
|
|
||||||
for(int i=0; i<list.size(); i++) {
|
|
||||||
Map<String, String> param = list.get(i);
|
|
||||||
listParam.add(param);
|
|
||||||
|
|
||||||
if(listParam.size()%BATCH_SIZE == 0) {
|
|
||||||
//load
|
|
||||||
sqlSession.insert("kr.xit.fims.framework.biz.cmm.dao.XitTestMapper.addListTest", listParam);
|
|
||||||
|
|
||||||
listParam.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(listParam.size()>0) { //미처리 건수가 있다면..
|
|
||||||
//load
|
|
||||||
sqlSession.insert("kr.xit.fims.framework.biz.cmm.dao.XitTestMapper.addListTest", listParam);
|
|
||||||
}
|
|
||||||
|
|
||||||
long endTime = System.currentTimeMillis();
|
|
||||||
//execute
|
|
||||||
sqlSession.flushStatements();
|
|
||||||
//close
|
|
||||||
sqlSession.close();
|
|
||||||
System.out.println("===============================================");
|
|
||||||
System.out.println(String.format("일괄등록 테스트[총 %d건 처리소요 %d초]", list.size(), (endTime-startTime)/1000 ));
|
|
||||||
System.out.println("===============================================");
|
|
||||||
|
|
||||||
|
|
||||||
return list.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 대용량 데이터 생성</pre>
|
|
||||||
* @return List<Map<String,String>> 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2021. 1. 17.
|
|
||||||
*/
|
|
||||||
private List<Map<String, String>> creatTestDataList(int dataSize) {
|
|
||||||
List<Map<String, String>> listParam = new ArrayList<Map<String,String>>();
|
|
||||||
|
|
||||||
if(dataSize<1)
|
|
||||||
dataSize = 100999;
|
|
||||||
for(int i=0; i<dataSize; i++) {
|
|
||||||
Map<String, String> param = new HashMap<String, String>();
|
|
||||||
param.put("log_id", "BATCH_"+lpad(i+"", 10, '0'));
|
|
||||||
param.put("error_code", "00");
|
|
||||||
listParam.add(param);
|
|
||||||
}
|
|
||||||
|
|
||||||
return listParam;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String lpad(String val, int size, char charcter) {
|
|
||||||
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
for(int i=0; i<size-val.length(); i++) {
|
|
||||||
sb.append(charcter);
|
|
||||||
}
|
|
||||||
|
|
||||||
return sb.toString()+val;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,467 +0,0 @@
|
|||||||
package kr.xit.fims.framework.biz.cmm.web;
|
|
||||||
|
|
||||||
import cokr.xit.foundation.web.AbstractController;
|
|
||||||
import kr.xit.fims.framework.biz.cmm.service.XitFrameCrudService;
|
|
||||||
import kr.xit.fims.framework.biz.cmm.service.XitTestService;
|
|
||||||
import kr.xit.fims.framework.biz.mng.user.XitUserInfoVO;
|
|
||||||
import kr.xit.fims.framework.core.constants.FrameworkConstants.TILES_TYPE;
|
|
||||||
import kr.xit.fims.framework.core.utils.XitCmmnUtil;
|
|
||||||
import kr.xit.fims.framework.core.utils.XitMap;
|
|
||||||
import kr.xit.fims.framework.core.utils.XitScrtyUtil;
|
|
||||||
import org.egovframe.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.stereotype.Controller;
|
|
||||||
import org.springframework.ui.ModelMap;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.*;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @업무그룹명: Xit 프레임워크 테스트 Controller
|
|
||||||
* @설명: 각종 테스트를 위한 Controller
|
|
||||||
* @최초작성일: 2020. 3. 20. 오후 6:32:38
|
|
||||||
* @최초작성자: 박민규
|
|
||||||
* @author (주)엑스아이티 개발팀
|
|
||||||
* @since 2002. 2. 2.
|
|
||||||
* @version 1.0 Copyright(c) XIT All rights reserved.
|
|
||||||
*/
|
|
||||||
@Controller
|
|
||||||
@RequestMapping(name = "", value="/xitframe/test/")
|
|
||||||
public class XitTestController extends AbstractController {
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(XitTestController.class);
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private XitTestService xitTestService;
|
|
||||||
@Resource
|
|
||||||
private XitFrameCrudService xitFrameCrudService;
|
|
||||||
|
|
||||||
private final String TEST_JSP_PATH = "framework/test/";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 조회 테스트
|
|
||||||
* -DB가 정상적으로 호출 되는지 확인 한다.
|
|
||||||
* </pre>
|
|
||||||
* void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @throws IOException
|
|
||||||
* @date: 2020. 3. 18.
|
|
||||||
*/
|
|
||||||
@RequestMapping(name = "", value="case1")
|
|
||||||
public void case1(HttpServletResponse resp) throws IOException {
|
|
||||||
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
|
|
||||||
if (!isAuthenticated) {
|
|
||||||
// model.addAttribute("message", egovMessageSource.getMessage("fail.common.login"));
|
|
||||||
// return "framework/egov/uat/uia/EgovLoginUsr";
|
|
||||||
resp.setCharacterEncoding("UTF-8");
|
|
||||||
resp.setContentType("text/html charset=UTF-8");
|
|
||||||
Writer writer = resp.getWriter();
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.write(String.format("<br/>권한이 없습니다.<br/>"));
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 처리
|
|
||||||
*/
|
|
||||||
//DB 조회
|
|
||||||
XitMap xitMap = xitTestService.findTest();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 요청결과 반화
|
|
||||||
*/
|
|
||||||
resp.setCharacterEncoding("UTF-8");
|
|
||||||
resp.setContentType("text/html charset=UTF-8");
|
|
||||||
Writer writer = resp.getWriter();
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.write(String.format("<br/>조회 테스트 결과:::::::%s<br/>", xitMap.toString()));
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.close();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 트랜잭션 테스트</pre>
|
|
||||||
* @param resp
|
|
||||||
* @throws IOException void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 3. 20.
|
|
||||||
*/
|
|
||||||
@RequestMapping(name = "", value="case2")
|
|
||||||
public void case2(HttpServletResponse resp) throws IOException {
|
|
||||||
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
|
|
||||||
if (!isAuthenticated) {
|
|
||||||
resp.setCharacterEncoding("UTF-8");
|
|
||||||
resp.setContentType("text/html charset=UTF-8");
|
|
||||||
Writer writer = resp.getWriter();
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.write(String.format("<br/>권한이 없습니다.<br/>"));
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// try {
|
|
||||||
xitTestService.transactionTest();
|
|
||||||
// } catch (Exception e) {
|
|
||||||
// resp.setCharacterEncoding("UTF-8");
|
|
||||||
// resp.setContentType("text/html charset=UTF-8");
|
|
||||||
// Writer writer = resp.getWriter();
|
|
||||||
// writer.write("================================================================");
|
|
||||||
// writer.write(String.format("<br/>처리 도중 error 발생.<br/>"));
|
|
||||||
// writer.write(String.format("<br/>error details...-> %s<br/>", e.getMessage()));
|
|
||||||
// writer.write("================================================================");
|
|
||||||
// writer.close();
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 연쇄적인 서비스 호출 시 트랜잭션 테스트</pre>
|
|
||||||
* @param resp
|
|
||||||
* @throws IOException void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 3. 20.
|
|
||||||
*/
|
|
||||||
@RequestMapping(name = "", value="case3")
|
|
||||||
public void case3(HttpServletResponse resp) throws IOException {
|
|
||||||
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
|
|
||||||
if (!isAuthenticated) {
|
|
||||||
resp.setCharacterEncoding("UTF-8");
|
|
||||||
resp.setContentType("text/html charset=UTF-8");
|
|
||||||
Writer writer = resp.getWriter();
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.write(String.format("<br/>권한이 없습니다.<br/>"));
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
|
||||||
xitTestService.transactionOfServiceChainTest();
|
|
||||||
} catch (Exception e) {
|
|
||||||
resp.setCharacterEncoding("UTF-8");
|
|
||||||
resp.setContentType("text/html charset=UTF-8");
|
|
||||||
Writer writer = resp.getWriter();
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.write(String.format("<br/>처리 도중 error 발생.<br/>"));
|
|
||||||
writer.write(String.format("<br/>error details...-> %s<br/>", e.getMessage()));
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.close();
|
|
||||||
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: tiles 적용 테스트</pre>
|
|
||||||
* @param resp
|
|
||||||
* @throws IOException void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 3. 20.
|
|
||||||
*/
|
|
||||||
@RequestMapping(name = "", value="case4")
|
|
||||||
public String case4(@RequestParam(name="tiles", required=false, defaultValue="") String tiles) throws IOException {
|
|
||||||
switch (tiles.toUpperCase()) {
|
|
||||||
case "N":
|
|
||||||
return TEST_JSP_PATH+"test"+TILES_TYPE.NONE.getVal();
|
|
||||||
default:
|
|
||||||
return TEST_JSP_PATH+"test";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 사용자 비밀번호 초기화
|
|
||||||
* -신규시스템으로 이전된 사용자의 비밀번호를 새로운 비밀번호로 변경 한다.
|
|
||||||
* </pre>
|
|
||||||
* @param resp
|
|
||||||
* @throws IOException void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 4. 29.
|
|
||||||
*/
|
|
||||||
@RequestMapping(name = "", value="case5")
|
|
||||||
public void case5(HttpServletResponse resp
|
|
||||||
, @RequestParam(name="trget", required=false, defaultValue="one") String trget
|
|
||||||
, @RequestParam(name="trgetId", required=false, defaultValue="") String trgetId
|
|
||||||
) throws IOException {
|
|
||||||
|
|
||||||
|
|
||||||
List<XitUserInfoVO> listUserInfo = null;
|
|
||||||
try {
|
|
||||||
XitUserInfoVO vo = new XitUserInfoVO();
|
|
||||||
if("all".equalsIgnoreCase(trget))
|
|
||||||
listUserInfo = xitFrameCrudService.findXitUserInfos(vo);
|
|
||||||
else {
|
|
||||||
if(XitCmmnUtil.isEmpty(trgetId))
|
|
||||||
throw new RuntimeException("사용자ID는 필수조건 입니다.");
|
|
||||||
vo.setUserId(trgetId);
|
|
||||||
listUserInfo = xitFrameCrudService.findXitUserInfos(vo);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
for(XitUserInfoVO userInfoVO : listUserInfo) {
|
|
||||||
String newPassword = XitScrtyUtil.encryptPassword("1", userInfoVO.getUserId());
|
|
||||||
vo = new XitUserInfoVO();
|
|
||||||
vo.setUserId(userInfoVO.getUserId());
|
|
||||||
vo.setPasswd(newPassword);
|
|
||||||
xitFrameCrudService.modifyXitUserInfo(vo);
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
resp.setCharacterEncoding("UTF-8");
|
|
||||||
resp.setContentType("text/html charset=UTF-8");
|
|
||||||
Writer writer = resp.getWriter();
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.write(String.format("<br/>처리 도중 error 발생.<br/>"));
|
|
||||||
writer.write(String.format("<br/>error details...-> %s<br/>", e.getMessage()));
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
resp.setCharacterEncoding("UTF-8");
|
|
||||||
resp.setContentType("text/html charset=UTF-8");
|
|
||||||
Writer writer = resp.getWriter();
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.write(String.format("<br/>처리 결과:::::::%s건의 사용자 비밀번호 초기화 완료<br/>", listUserInfo.size()));
|
|
||||||
writer.write("================================================================");
|
|
||||||
writer.close();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: tui grid 테스트 </pre>
|
|
||||||
* @param resp
|
|
||||||
* @throws IOException void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 5. 17.
|
|
||||||
*/
|
|
||||||
@RequestMapping(name = "", value="case6")
|
|
||||||
public String case6(HttpServletResponse resp, @RequestParam(name="tiles", required=false, defaultValue="") String tiles) throws IOException {
|
|
||||||
switch (tiles.toUpperCase()) {
|
|
||||||
case "N":
|
|
||||||
return TEST_JSP_PATH+"TuiGrid"+TILES_TYPE.NONE.getVal();
|
|
||||||
default:
|
|
||||||
return TEST_JSP_PATH+"TuiGrid";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: tui grid 데이터 조회</pre>
|
|
||||||
* @return
|
|
||||||
* @throws IOException Map<String,Object> 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2020. 5. 17.
|
|
||||||
*/
|
|
||||||
@RequestMapping(name = "", value="case7")
|
|
||||||
@ResponseBody
|
|
||||||
public Map<String, Object> case7(@RequestParam Map<String, String> m) throws IOException {
|
|
||||||
/**
|
|
||||||
* 조회
|
|
||||||
*/
|
|
||||||
List<XitUserInfoVO> list = xitFrameCrudService.findXitUserInfos(new XitUserInfoVO());
|
|
||||||
|
|
||||||
/**AA
|
|
||||||
* 응답결과 설정
|
|
||||||
*/
|
|
||||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
||||||
resultMap.put("data", list);
|
|
||||||
resultMap.putAll(m);
|
|
||||||
return resultMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 대용량 insert 테스트</pre>
|
|
||||||
* @param m
|
|
||||||
* @return
|
|
||||||
* @throws IOException Map<String,Object> 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2021. 1. 17.
|
|
||||||
*/
|
|
||||||
@RequestMapping(name = "", value="case8")
|
|
||||||
@ResponseBody
|
|
||||||
public Map<String, Object> case8(@RequestParam Map<String, String> m) throws IOException {
|
|
||||||
/**
|
|
||||||
* 처리
|
|
||||||
*/
|
|
||||||
int dataSize = XitCmmnUtil.isEmpty(m.get("dataSize"))?0:Integer.parseInt(m.get("dataSize"));
|
|
||||||
String type = "unknown";
|
|
||||||
int result = 0;
|
|
||||||
long startTime = System.currentTimeMillis();
|
|
||||||
switch (m.get("type")) {
|
|
||||||
case "single":
|
|
||||||
case "1":
|
|
||||||
//single insert SQL 사용
|
|
||||||
type = "Single";
|
|
||||||
result = xitTestService.insertBatchTestBySingle(dataSize);
|
|
||||||
break;
|
|
||||||
case "bulk":
|
|
||||||
case "2":
|
|
||||||
//foreach insert SQL 사용
|
|
||||||
type = "Bulk";
|
|
||||||
result = xitTestService.insertBatchTestByBulk(dataSize);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
//single insert SQL 사용
|
|
||||||
type = "Single";
|
|
||||||
result = xitTestService.insertBatchTestBySingle(dataSize);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
long endTime = System.currentTimeMillis();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 응답결과 설정
|
|
||||||
*/
|
|
||||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
||||||
resultMap.put("message", String.format("%s 타입으로 총 %d건 등록 %d초 소요", type, result, (endTime-startTime)/1000 ));
|
|
||||||
return resultMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping(name = "", value="case9")
|
|
||||||
public void case9(@RequestParam Map<String, String> m, HttpServletResponse response) throws IOException {
|
|
||||||
final String PATH = "C:/xit/test/";
|
|
||||||
final String FILE_NAME = "api.log";
|
|
||||||
|
|
||||||
printLog(PATH, FILE_NAME, "hahaha");
|
|
||||||
printLog(PATH, FILE_NAME, "kkkkkk");
|
|
||||||
printLog(PATH, FILE_NAME, "hohoho");
|
|
||||||
|
|
||||||
downloadLog(response, PATH+FILE_NAME);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 엑셀 저장</pre>
|
|
||||||
* @param m
|
|
||||||
* @param response
|
|
||||||
* @author: 박민규
|
|
||||||
* @throws Exception
|
|
||||||
* @date: 2021. 9. 24.
|
|
||||||
*/
|
|
||||||
@RequestMapping(name = "", value="case10")
|
|
||||||
public String case10(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception {
|
|
||||||
response.setHeader("Content-disposition", "attachment; filename=" + XitCmmnUtil.getFileNameForDownload(request, "엑셀파일 저장 테스트.xlsx"));
|
|
||||||
|
|
||||||
|
|
||||||
StringBuffer columns = new StringBuffer(); //jsonArray 포맷 String으로 작성
|
|
||||||
columns.append("[")
|
|
||||||
.append("{\"title\" : \"컬럼1\", \"name\" : \"col1\"}")
|
|
||||||
.append(",{\"title\" : \"컬럼2\", \"name\" : \"col2\"}")
|
|
||||||
.append(",{\"title\" : \"컬럼3\", \"name\" : \"col3\"}")
|
|
||||||
.append(",{\"title\" : \"컬럼4\", \"name\" : \"col4\"}")
|
|
||||||
.append("]");
|
|
||||||
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); //contents
|
|
||||||
Map<String, Object> row = new HashMap<String, Object>();
|
|
||||||
row.put("col1", 123); row.put("col2", "2021-09-21"); row.put("col3", "123,456,789" ); row.put("col4", "abc");
|
|
||||||
list.add(row);
|
|
||||||
row = new HashMap<String, Object>();
|
|
||||||
row.put("col1", 456); row.put("col2", "2021-09-22"); row.put("col3", "123,456,789.22"); row.put("col4", "가나다");
|
|
||||||
list.add(row);
|
|
||||||
row = new HashMap<String, Object>();
|
|
||||||
row.put("col1", 789); row.put("col2", "2021-09-23"); row.put("col3", 123456789L ); row.put("col4", "0123456789");
|
|
||||||
list.add(row);
|
|
||||||
row = new HashMap<String, Object>();
|
|
||||||
row.put("col1", 012); row.put("col2", "2021-09-24"); row.put("col3", 123456789.44 ); row.put("col4", "010-1111-222");
|
|
||||||
list.add(row);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
logger.debug("EXCEL LIST : " + list);
|
|
||||||
|
|
||||||
model.put("header", columns.toString());
|
|
||||||
model.put("contents", list);
|
|
||||||
|
|
||||||
return "excelView";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <pre>메소드 설명: 로그 출력
|
|
||||||
* - API 호출 시 로그정보를 파일에 저장 한다.
|
|
||||||
* </pre>
|
|
||||||
* @param PATH 파일경로(ex> 윈도우 C:/logs/ 리눅스계열: /logs/)
|
|
||||||
* @param FILE_NAME 파일명(ex> api.log)
|
|
||||||
* @param MESSAGE 메세지
|
|
||||||
* @throws IOException void 요청처리 후 응답객체
|
|
||||||
* @author: 박민규
|
|
||||||
* @date: 2021. 1. 28.
|
|
||||||
*/
|
|
||||||
private void printLog(final String PATH, final String FILE_NAME, final String MESSAGE) throws IOException {
|
|
||||||
//디렉토리가 없으면.. 생성
|
|
||||||
File dir = new File(PATH);
|
|
||||||
if(!dir.isDirectory())
|
|
||||||
dir.mkdirs();
|
|
||||||
|
|
||||||
//로그 출력
|
|
||||||
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
|
||||||
FileOutputStream fos = new FileOutputStream(PATH+FILE_NAME, true);
|
|
||||||
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
|
|
||||||
BufferedWriter writer = null;
|
|
||||||
try {
|
|
||||||
writer = new BufferedWriter(osw);
|
|
||||||
writer.write(String.format("%s LOG [%s]", date.format(new Date()), MESSAGE ));
|
|
||||||
writer.write("\r\n");
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
//BufferedWriter close..
|
|
||||||
if(writer != null) {
|
|
||||||
writer.close();
|
|
||||||
}
|
|
||||||
//OutputStreamWriter close..
|
|
||||||
if(osw != null) {
|
|
||||||
osw.close();
|
|
||||||
}
|
|
||||||
//FileOutputSteam close..
|
|
||||||
if(fos != null) {
|
|
||||||
fos.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void downloadLog(HttpServletResponse response, String pathname) throws IOException {
|
|
||||||
File file = new File(pathname);
|
|
||||||
|
|
||||||
if (!file.exists()) {
|
|
||||||
throw new FileNotFoundException(pathname);
|
|
||||||
}
|
|
||||||
if (!file.isFile()) {
|
|
||||||
throw new FileNotFoundException(pathname);
|
|
||||||
}
|
|
||||||
|
|
||||||
response.setContentLength((int) file.length());
|
|
||||||
response.addHeader("Content-Disposition", "attachment;filename=" + file.getName() + ";");
|
|
||||||
|
|
||||||
FileInputStream fis = new FileInputStream(file);
|
|
||||||
OutputStream os = response.getOutputStream();
|
|
||||||
byte[] bytes = new byte[256];
|
|
||||||
int readBytes = 0;
|
|
||||||
while ((readBytes = fis.read(bytes, 0, bytes.length)) != -1) {
|
|
||||||
os.write(bytes, 0, readBytes);
|
|
||||||
}
|
|
||||||
os.flush();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
<?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="kr.xit.fims.framework.biz.cmm.dao.XitTestMapper">
|
|
||||||
|
|
||||||
<select id="findTest" resultType="xitMap">
|
|
||||||
/** findTest */
|
|
||||||
/** 조회 테스트 */
|
|
||||||
SELECT 'admin' AS "ID"
|
|
||||||
,'123' AS "PWD"
|
|
||||||
FROM DUAL
|
|
||||||
WHERE 1=#{param}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<insert id="addTest">
|
|
||||||
/** addTest */
|
|
||||||
/** 등록 테스트 */
|
|
||||||
INSERT INTO LETTNLOGINLOG(
|
|
||||||
LOG_ID
|
|
||||||
,CONECT_MTHD
|
|
||||||
,ERROR_OCCRRNC_YN
|
|
||||||
,ERROR_CODE
|
|
||||||
,CREAT_DT
|
|
||||||
)VALUES(
|
|
||||||
CONCAT('TEST_',LPAD((SELECT IFNULL(REPLACE(MAX(LOG_ID),'TEST_',''),0)+1 AS "LOG_ID" FROM LETTNLOGINLOG WHERE LOG_ID LIKE 'TEST_%') ,14 ,'0') )
|
|
||||||
,'I'
|
|
||||||
,'N'
|
|
||||||
,IFNULL(#{error_code}, '00')
|
|
||||||
,NOW()
|
|
||||||
)
|
|
||||||
</insert>
|
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
|
Loading…
Reference in New Issue