Project Structure

Main Application

@SpringBootApplication
@EnableJpaAuditing
@EnableCaching
@ComponentScan({"com.ssafy.core"})
@ComponentScan({"com.ssafy.api"})
@EntityScan("com.ssafy.core")
@EnableJpaRepositories("com.ssafy.core")
public class ApiApplication {
    public static void main(String[] args) {
        SpringApplication.run(ApiApplication.class, args);
    }
}
// ๋ฐฐ์น˜ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”
// @EnableBatchProcessing : Spring Batch์˜ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
@EnableBatchProcessing
@SpringBootApplication
@EnableJpaAuditing
@EnableCaching
@ComponentScan({"com.ssafy.core"})
@ComponentScan({"com.ssafy.batch"})
@EntityScan("com.ssafy.core")
@EnableJpaRepositories("com.ssafy.core")
public class SpringbatchApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbatchApplication.class, args);
    }

}

Advice

@RestControllerAdvice
public class ExceptionAdvice {
    private final ResponseService responseService;
    private final MessageSource messageSource;

    @ExceptionHandler(CAuthenticationEntryPointException.class)
    @ResponseStatus(HttpStatus.UNAUTHORIZED)
    public CommonResult authenticationEntryPointException(HttpServletRequest request, CAuthenticationEntryPointException e) {
        log.info(getMessage("entryPointException.msg"));
        return responseService.getFailResult(Integer.valueOf(getMessage("entryPointException.code")), getMessage("entryPointException.msg"));
    }
}

Config

@Slf4j
@Component
@Aspect
// ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ๋กœ๊ทธ ์ถœ๋ ฅ
public class LogConfig {
    @Pointcut("execution(* com.ssafy.api.controller.*.*(..))")  // ์ด๋Ÿฐ ํŒจํ„ด์ด ์‹คํ–‰๋  ๊ฒฝ์šฐ ์ˆ˜ํ–‰
    public void loggerPointCut() {
    }

    @Around("loggerPointCut()")
    public Object logging(ProceedingJoinPoint pjp) throws Throwable { // 2

    String params = getRequestParams(); // request ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
    
    long startAt = System.currentTimeMillis();
    
    if(params != "") {
        String className = pjp.getSignature().getDeclaringTypeName();
        log.info("+++ REQUEST Param +++");
        log.info("+++ {}({}) => {}", className.substring(className.lastIndexOf(".") + 1), pjp.getSignature().getName(), params);
    }
    
    Object result = pjp.proceed(); // 4
    
    long endAt = System.currentTimeMillis();
    
        return result;
    }
}