framework(32)
-
Mybatis DAO에서 쿼리 추출 및 로그 찍기 (Log 라이브러리 사용안함)
Mybatis DAO에서 쿼리 추출 및 로그 찍기 (Log 라이브러리 사용안함) Mybatis 를 사용하면서 쿼리를 콘솔에 찍을 일이 생겼다. Log4j, log4sql, log4j-remix 등을 사용하면 쉽게 적용할 수 있다. 하지만 이번 포스팅에서는 위 라이브러리들을 활용하지 않고서 Mybatis만을 이용해서 진행하려 한다. 원리를 간단하게 설명하자면 다음과 같다. 1. sqlSession 에서 쿼리를 추출 2. sqlSession 에서 parameter 추출 3. 쿼리의 ? 문자열을 parameter로 치환 4. 출력 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class SampleDao{ SqlSession sqlSession = SqlMapClie..
2018.07.31 -
Log4j의 정의, 개념, 설정, 사용법 정리
* Log4j 1에 대해서 가볍게 정리한 문서입니다. * Log4j 2는 일부 내용이 변경되었을 수 있습니다. * 요약 * Log4j 정의 Log4j 특징 Log4j 구조 Log4j 레벨 Log4j Pattern Option Log4j 주요 클래스 Log4j 설정 Log4j 정의 Log4j : Log for Java 로그문의 출력을 다양한 대상으로 할 수 있도록 도와주는 도구(오픈소스) 오픈소스 링크 Log4j 특징 - log4j는 속도에 최적화 - log4j는 이름있는 로그 계층에 기반 - log4j는 fail-stop이지만 신뢰성은 없음 - log4j는 thread-safe(멀티스레드 환경에서 사용해도 안전하다:역주). - log4j는 융통성이 풍부 - 설정 파일은 property 파일과 XML 형식..
2018.02.21 -
SPRING @Async를 활용한 multi thread 구현 - 5 - 구현
SPRING @Async를 활용한 multi thread 구현 - 5 - 구현 Spring 에서 비동기 처리를 하기 위해서 AsyncConfigurer@Asynk를 사용하려고 한다. 개발 환경은 Java 8 , Tomcat 8 , Spring 4.1 이다. 본 포스팅은 SPRING @Async를 활용한 multi thread 구현 - 1 - 개요 SPRING @Async를 활용한 multi thread 구현 - 2 - AsyncConfigurer 생성 SPRING @Async를 활용한 multi thread 구현 - 3 - @Async 사용 및 Task 추가 SPRING @Async를 활용한 multi thread 구현 - 4 - ExceptionHandler 생성 SPRING @Async를 활용한 mu..
2017.07.11 -
SPRING @Async를 활용한 multi thread 구현 - 4 - ExceptionHandler 생성
SPRING @Async를 활용한 multi thread 구현 - 4 - ExceptionHandler 생성 Spring 에서 비동기 처리를 하기 위해서 AsyncConfigurer@Asynk를 사용하려고 한다. 개발 환경은 Java 8 , Tomcat 8 , Spring 4.1 이다. 본 포스팅은 SPRING @Async를 활용한 multi thread 구현 - 1 - 개요 SPRING @Async를 활용한 multi thread 구현 - 2 - AsyncConfigurer 생성 SPRING @Async를 활용한 multi thread 구현 - 3 - @Async 사용 및 Task 추가 SPRING @Async를 활용한 multi thread 구현 - 4 - ExceptionHandler 생성 SPRI..
2017.07.11 -
SPRING @Async를 활용한 multi thread 구현 - 3 - @Async 사용 및 Task 추가
SPRING @Async를 활용한 multi thread 구현 - 3 - @Async 사용 및 Task 추가 Spring 에서 비동기 처리를 하기 위해서 AsyncConfigurer@Asynk를 사용하려고 한다. 개발 환경은 Java 8 , Tomcat 8 , Spring 4.1 이다. 본 포스팅은 SPRING @Async를 활용한 multi thread 구현 - 1 - 개요 SPRING @Async를 활용한 multi thread 구현 - 2 - AsyncConfigurer 생성 SPRING @Async를 활용한 multi thread 구현 - 3 - @Async 사용 및 Task 추가 SPRING @Async를 활용한 multi thread 구현 - 4 - ExceptionHandler 생성 SPRI..
2017.07.11 -
SPRING @Async를 활용한 multi thread 구현 - 2 - AsyncConfigurer 생성
SPRING @Async를 활용한 multi thread 구현 - 2 - AsyncConfigurer 생성 Spring 에서 비동기 처리를 하기 위해서 AsyncConfigurer@Asynk를 사용하려고 한다. 개발 환경은 Java 8 , Tomcat 8 , Spring 4.1 이다. 본 포스팅은 SPRING @Async를 활용한 multi thread 구현 - 1 - 개요 SPRING @Async를 활용한 multi thread 구현 - 2 - AsyncConfigurer 생성 SPRING @Async를 활용한 multi thread 구현 - 3 - @Async 사용 및 Task 추가 SPRING @Async를 활용한 multi thread 구현 - 4 - ExceptionHandler 생성 SPRIN..
2017.07.11 -
SPRING @Async를 활용한 multi thread 구현 - 1 - 개요
SPRING @Async를 활용한 multi thread 구현 - 1 - 개요 Spring 에서 비동기 처리를 하기 위해서 AsyncConfigurer@Asynk를 사용하려고 한다. 개발 환경은 Java 8 , Tomcat 8 , Spring 4.1 이다. 본 포스팅은 SPRING @Async를 활용한 multi thread 구현 - 1 - 개요 SPRING @Async를 활용한 multi thread 구현 - 2 - AsyncConfigurer 생성 SPRING @Async를 활용한 multi thread 구현 - 3 - @Async 사용 및 Task 추가 SPRING @Async를 활용한 multi thread 구현 - 4 - ExceptionHandler 생성 SPRING @Async를 활용한 mu..
2017.07.11 -
log4j 특정 클래스 제외 / 클래스별 설정
log4j 특정 클래스 제외 / 클래스별 설정 log4j 로 root에서 INFO 레벨로 로그를 console에 출력하고 있었다. INFO 레벨의 로그들은 모두 출력되는데 그 중에서 특정 로그를 보고싶지 않거나 출력하지 않도록 하고싶다. 나의 로그 패턴은 다음과 같다. 1 [%5p] %d{hh\:mm s} (%F\:%L) %c{1}.%M \: %m%n cs 해석하자면 로그레벨 발생한시간 파일명 라인수 카테고리 메소드 내용 순이다. 위 패턴으로 console에 출력되는 로그 모양은 다음과 같다. 1 2 3 4 5 6 7 8 9 [ INFO] 01:34 56 (AbstractHandlerMethodMapping.java:220) RequestMappingHandlerMapping.registerHandler..
2017.07.04 -
spring excel csv download 하기 / super-csv jar 사용하기 / AbstractView
spring excel csv download 하기 / super-csv jar 사용하기 / AbstractView 오늘은 spring 환경에서 AbstractView 를 활용해서 excel csv 다운로드를 구현해 본다. 당연히 org.springframework.web.servlet.view.BeanNameViewResolver 설정이 되어 있어야 한다. csv 파일 형식은 속도에 있어서 아주 강한모습을 보인다. 개발환경은 다음과 같다. spring 환경 ( 3.0 ~ 4.1 까지 상관없음) super-csv 라이브러리가 필요함 다운로드 : csv 를 생성하는데 있어서 VO, Map 두가지 모두 지원한다. controller 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ..
2017.06.30 -
MyBatis isNull isEmpty 사용하기
MyBatis isNull, isEmpty 사용하여 문자열 비교하기 Ibatis 에는 isNull, isEmpty가 있었지만 MyBatis에는 없다. 기타 다른 태그들 역시 사라지고 없지만 이번 포스팅에서는 문자가 null인지 또는 공백인지에 대해 체크하는 방법에 대해서 살펴 보려고 한다. 가장 흔하게 비교하는 것이 값이 null인지 공백인지 체크하는게 아닌가 싶다. 보통은 다음과 같이 null인지 공백인지 체크를 동시에 한다. 1 cs 하지만 MyBatis에서는 OGNL(Object Graph Navigation Language) 의 이슈가 있다.(참고 http://cofs.tistory.com/96) 그래서 위의 방법은 좋은 방법이 아니라고 생각한다. 더 확실한 방법이 필요하다. 찾아보니 MyBati..
2017.06.28