반응형

# 이클립스 search 결과 파일 새 창으로 오픈 설정

  • 이클립스 > window > preferences > general > search
  • reuse editors to show matches 체크/해제
반응형

'메모장' 카테고리의 다른 글

오라클 교육용 XE 무료 DB 설치  (0) 2021.01.28
Axure RP 다크모드 설정  (0) 2021.01.22
로그세팅 (log4j)  (0) 2021.01.14
스프링 AOP  (0) 2021.01.14
xml include refid  (0) 2021.01.14
반응형

# 로그세팅

  • 개발을 빠르고, 편리하게 할 수 있도록 해준다.

1. eGovFrame로 클릭 후 src/main/java 하위에 패키지 생성 (패키지 명 : common.logger)

2. LoggerAspect.java 파일 추가

src/main/java에 추가
package common.logger
import java.util.Arrays;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;

@Aspect
public class LoggerAspec {
protected Log log = LogFactory.getLog(LoggerAspect.class);
static String name = "";
static String type = "";

@Around("execution(* kr.re.abc..controller.*Controller.*(..)) or excution(* kr.re.abc..service.*Service(..)) or execution(* kr.re.abc..service.impl.*Impl.*(..))")
public Object logPrint(ProceedingJoinPoint joinPoint) throws Throwable {
    type = joinPoint.getSignature().getDeclaringTypeName();
    
    System.out.println("type===>" + type);
    
    if (type.indexOf("Controller") > -1) {
    	name = "Controller===> \t:";
    } else if (type.indexOf("Service") > -1) {
    	name = "Service===> \t:";
    } else if (type.indexOf("ServiceImpl") > -1) {
    	name = "ServiceImpl===> \t:";
    }
    
    System.out.println(name + type + "." + joinPoint.getSignature().getName() + "()");
    System.out.println("파라미터정보::::" + Arrays.toString(joinPoint.getArgs()));

    /*파라미터 출력해보기
      Object[] signatureArgs = joinPoint.getArgs();
      for (Object param : signatureArgs) {
          System.out.println("param::::" + param);
      }
    */
    
    return joinPoint.proceed();
    }
  }
}

3. Java Build Path에 jar파일 추가

패키지 우 클릭 > Properties > Java Build Path에 jar파일 추가 

aspectjrt-1.5.0 / aspectjtools-1.5.0 2개

4. log4j.xml 파일 덮어쓰기

src/main/resources > config에 추가
  • 아래 코드 추가 (기존 value값 DEBUG, INFO로 변경)
<logger name="egovframework" additivity="false">
<level value="DEBUG">
<appender-ref ref="console">
</logger>

<logger name="jdbc.sqltiming" additivity="false">
<level value="INFO">
<appender-ref ref="console">
</logger>

<logger name="org.mybatis" additivity="false">
<level value="INFO">
<appender-ref ref="console">
</logger>

<logger name="java.sql" additivity="false">
<level value="INFO">
<appender-ref ref="console">
</logger>

5. dispatcher-servlet.xml 파일 덮어쓰기

src/main/resources > dispatcher에 추가
  • 아래 코드 추가
<aop:aspectj-autoproxy/>
<bean id="loggerAspect" class="common.logger.LoggerAspect"/>

6. context-aop.xml 파일 덮어쓰기

src/main/resources > spring에 추가
  • 아래 코드 추가
<bean id="loggerAspect" class="common.logger.LoggerAspect"/>
반응형

'메모장' 카테고리의 다른 글

Axure RP 다크모드 설정  (0) 2021.01.22
이클립스 search 결과 파일 새 창으로 오픈 설정  (0) 2021.01.15
스프링 AOP  (0) 2021.01.14
xml include refid  (0) 2021.01.14
console 출력 양 늘리기  (0) 2021.01.14
반응형

# 관점 지향 프로그래밍 (AOP : Aspect Oriented Programming)

  • 어떤 로직을 기준으로 학심적인 관점, 부가적인 관점으로 나누어 보고 그 관점을 기준으로 각각 모듈화 하겠다는 것
  • 모듈화 : 공통 로직이나 기능을 하나의 단위로 묶는 것
  • 예)
핵심 관점 : 적용하고자 하는 핵심 비즈니스 로직

부가 관점 : 핵심 로직을 실행하기 위해 행해지는 데이터베이스 연결, 로깅, 파일 입출력

 

반응형

'메모장' 카테고리의 다른 글

이클립스 search 결과 파일 새 창으로 오픈 설정  (0) 2021.01.15
로그세팅 (log4j)  (0) 2021.01.14
xml include refid  (0) 2021.01.14
console 출력 양 늘리기  (0) 2021.01.14
작업 분류 체계 (WBS)  (0) 2021.01.13
반응형

# include refid

  • 반복되는 쿼리를 처리하여 코드를 보다 간결하게 해준다.
<select id="" parameterType="" resultType="">
  <include refid="paging.header">
  	쿼리 입력
  <include refid="paging.footer">
</select>
반응형

'메모장' 카테고리의 다른 글

로그세팅 (log4j)  (0) 2021.01.14
스프링 AOP  (0) 2021.01.14
console 출력 양 늘리기  (0) 2021.01.14
작업 분류 체계 (WBS)  (0) 2021.01.13
한글 깨짐 해결방법 (톰캣, 자바)  (0) 2021.01.13

+ Recent posts