JAVA(244)
-
7. AOP 프로그래밍 #2 프록시(Proxy)와 AOP
본 글은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 7.2 프록시와 AOP 팩토리얼 메소드의 수행시간을 알고 싶다고 가정하자. 쉬운 방법은 메소드의 시작과 끝에서 시간을 구하고 이 두시간의 차이를 출력하는 것이다. 예를 들어 아래의 ImpleCalculator 클래스를 다음과 같이 수정하면 된다. 팩토리얼 메소드에서 수행시간을 출력하는 기능을 추가한 예제 public class ImpleCalculator implements Calculator{ @Override public long factorial(long num) { long start = System.currentTimeMillis(); long result = 1; for(long i=1; i
2021.07.27 -
7. AOP 프로그래밍 #1 프로젝트 준비
본 글은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 7.1 프로젝트 준비 step1 메이븐 프로젝트의 pom.xml 파일에 aspectj.weaver 의존을 추가 후 컴파일 4.0.0 sp5 sp5-chap07 0.0.1-SNAPSHOT org.springframework spring-context 5.0.2.RELEASE org.aspectj aspectjweaver 1.8.13 maven-compiler-plugin 3.7.0 1.8 1.8 utf-8 step2 mvn compile step3 IDE에서 Import 수행 AOP 실습을 위한 클래스 정의 1. Calculator.java package chap07; public interface Ca..
2021.07.27 -
4. 의존 자동 주입 #6 자동 주입과 명시적 의존 주입 간의 관계
본 글은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 6. 자동 주입과 명시적 의존 주입 간의 관계 스프링 설정 클래스의 자동 주입 대상인 빈 설정 메서드에서 명시적으로 세터 메소드를 수행하여 명시적으로 의존 주입을 했을때 어떻게 되는가? AppCtx 클래스의 infoPrinter 메서드 변경 @Configuration public class AppCtx { @Bean public MemberDao memberDao() { return new MemberDao(); } @Bean public MemberRegisterService memberRegSvc() { return new MemberRegisterService(); } @Bean public Ch..
2021.07.12 -
4. 의존 자동 주입 #5 @Autowired 애노테이션의 필수 여부
본 글은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 5. @Autowired 애노테이션의 필수 여부 @Autowired 애노테이션의 필수 여부를 지정하는 3가지 방법이 존재한다. @Autowired 애노테이션 필수여부 첫번째 방법 (requied=false) public class MemberPrinter { private DateTimeFormatter dateTimeFormatter; public void print(Member member) { ... 생략 } @Autowired(required = false) public void setDateTimeFormatter(DateTimeFormatter dateTimeFormatter) { this...
2021.07.12 -
4. 의존 자동 주입 #4 상위/하위 타입 관계와 자동 주입
4. 상위/하위 타입 관게와 자동 주입 목적 본 글의 목적은 상위 클래스와 하위 클래스를 정의하고 해당 타입의 빈 설정 메소드를 같은 스프링 설정 클래스 안에서 정의한다. 그리고 스프링이 자동 의존 주입 대상 선택시 예외가 발생하는지 확인한다. 우선 상위/하위 클래스를 정의하기 위해 MemberPrinter 클래스와 MemberSummary 클래스를 정의한다. MemberPrinter 클래스 정의 public class MemberPrinter { public void print(Member member) { System.out.printf("회원 정보 : 아이디=%d, 이메일=%s, 이름=%s, 등록일=%tF\n", member.getId(), member.getEmail(), member.getNam..
2021.07.12 -
4. 의존 자동 주입 #3-2 @Qualifier 애노테이션 적용을 통한 특정 빈 설정 메소드 수행 확인
본 글은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 2개의 의존 객체에 @Qualifier 애노테이션을 통한 같은 한정자 값을 적용하는 경우 개요 기본적으로 스프링 컨테이너가 생성한 빈 객체는 싱글톤 객체이다. 본 글의 목적은 같은 타입의 빈이 2개 이상 있는 상황에서 @Qualifier 애노테이션을 적용하여 하나의 빈 메소드만을 대상으로 자동 의존 주입 과정을 수행하는 것을 목표로 한다. 위와 같이 수행이 되면 @Qualifier 애노테이션을 설정한 같은 타입의 의존 객체들은 싱글톤 객체를 가질 것이라고 예상한다. 소스코드 MemberInfoPrinter.java https://github.com/yonghwankim-dev/spring5/blob/m..
2021.07.12