스프링 CGLib 클래스 프록시 사용
스프링의 트랜잭션 AOP는 기본적으로 서비스 계층의 interface를 JDK 다이내믹 프록시 기술을 이용하여 AOP를 지원하지만 인터페이스가 없다면 CGLib를 이용하여 클래스 프록시를 생성한다. 만약 CGLib를 이용한 클래스 […]
더 보기 →스프링의 트랜잭션 AOP는 기본적으로 서비스 계층의 interface를 JDK 다이내믹 프록시 기술을 이용하여 AOP를 지원하지만 인터페이스가 없다면 CGLib를 이용하여 클래스 프록시를 생성한다. 만약 CGLib를 이용한 클래스 […]
더 보기 →스프링에서는 예외 발생 시 HandlerExceptionResolver가 예외를 처리하도록 위임할 수 있다. 그래서 난 아래와 같이 SimpleMappingExceptionResolver를 정의한 후 예외 종류에 따라서 사용자에게 보여주는 화면을 달리하였다. <bean […]
더 보기 →“클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다” 난 위의 OCP 정의를 처음 접했을 때 이해가 되지 않았다. 헌데 토비의 스프링3.1 책을 읽게 […]
더 보기 →싱글톤과 프로토타입 객체에 대한 성능 비교를 위해 아래와 같이 테스트 코드를 작성하였다. 싱글톤은 객체 한 개만 생성한 후 그 안에 있는 test() 메소드를 호출하였고, 프로토타입은 […]
더 보기 →#!/bin/sh LIB_CLASSPATH=”/svc/idp/was/app/Altibase.jar” LIB_CLASSPATH=”/svc/idp/was/app/idpWebApp/WEB-INF/classes:${LIB_CLASSPATH}” echo “$LIB_CLASSPATH” java -cp ${LIB_CLASSPATH}:. DecodeSocialNumber 리눅스에 특정 class 파일을 업로드한 후 커맨드 명령창에서 class를 실행할 일이 생겼다. DB에서 데이터 조회 후 […]
더 보기 →대게 서비스 개발 완료 후 상용 장비에 배포할 때 한 대에 하는 것이 아닌 여러 대의 장비에 배포한다. 헌데, @Scheduled 애노테이션의 cron 표현식을 자바 코드 […]
더 보기 →공통 상수 값을 인터페이스에 정의하는 이유가 예전부터 궁금했었다. 처음에는 메소드가 필요 없어서 interface로 설계를 했나라고 그러려니 했었는데 다른 사람이 만들어놓은 소스를 보다보니 그 이유를 알게 […]
더 보기 →토비의 스프링 책을 보다 SpEL을 알게 되었고, 이를 샘플 프로젝트에 설정해 보았다. 간단하게 끝날 줄 알았던 설정이 1시간 동안의 삽질을 선물해 주었고, 이런 삽질을 다른 […]
더 보기 →자바 1.5에서부터 제너릭 기능이 추가 되었다. 내가 아는 제너릭은 타입 캐스팅의 비용을 줄이고, 런타임시에 발생하는 오류를 줄이며, 가독성이 좋은 코드를 만들기 위해 나온 기술이라고 알고 […]
더 보기 →스프링을 공부하다 보면 빈, 빈 팩토리, 애플리케이션 컨텍스트, 스프링 컨테이너, IoC 컨테이너 등 다양한 용어들이 나온다. 궁극적으로 이 용어들이 가리키는 것은 스프링 설정 xml 파일을 […]
더 보기 →