JAVA/Spring(111)
-
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 -
4. 의존 자동 주입 #3-1 @Qualifier 애노테이션을 이용한 의존 객체 선택
본 글은 초보 웹개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해서 작성된 글입니다. 3. @Qualifier 애노테이션을 이용한 의존 객체 선택 @Qualifier 애노테이션이란 무엇인가? 스프링 설정 클래스에서 설정한 Bean 메서드들 중 같은 클래스 타입의 자동 주입 가능한 빈이 2개 이상이면 자동 주입시 보통 예외를 발생시킨다. 위와 같은 문제를 해결하기 위해서 자동 주입할 빈을 한정하는 기능이 @Qualifier 애노테이션이다. @Qualifier 애노테이션 사용 위치 Bean 설정 메서드 setter 메서드 or 필드 멤버 : @Autowired 애노테이션과 동일하게 setter 메서드 또는 필드 멤버에 적용해도 효과는 동일하다. @Qualifier 애노테이션 첫번째 사용 위..
2021.07.09 -
4. 의존 자동 주입 #2 @Autowired 애노테이션을 이용한 의존 자동 주입
본 글은 최범균 저자의 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성한 글입니다. 2. @Autowired 애노테이션을 이용한 의존 자동 주입 자동 주입 기능을 사용하면 스프링이 알아서 의존 객체를 찾아서 주입한다. Before @Bean public MemberDao memberDao() { return new MemberDao(); } @Bean public ChangePasswordService changePwdSvc() { ChangePasswordService pwdSvc = new ChangePasswordService(); pwdSvc.setMemberDao(memberDao()); return pwdSvc; } 자동 주입 기능을 사용하면 @Bean 메서드..
2021.07.09 -
4. 의존 자동 주입 #1 예제 프로젝트 준비
본 글은 최범균 저자의 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 1. 예제 프로젝트 준비 step1 Gradle 프로젝트 생성 https://yonghwankim-dev.tistory.com/31?category=959269 2. 스프링 시작하기 #2 그레이들 프로젝트 생성 본 글은 최범균 저자의 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성한 글입니다. 1.3 그레이들 프로젝트 생성 그레이들 프로젝트를 생성하는 과정은 메이 yonghwankim-dev.tistory.com step2 3장의 java파일 복사 및 붙여넣기 References 초보 웹 개발자를 위한 스프링5 프로그래밍 입문
2021.07.09 -
3. 스프링 DI(Dependency Injection) #6 getBean() 메서드 사용
본 글은 최범균 저자의 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서 내용의 복습을 위해 작성된 글입니다. 9. getBean() 메서드 사용 getBean() 메서드의 형식 VersionPrinter versionPrinter = ctx.getBean("versionPrinter", VersionPrinter.class); getBean 메소드 첫번째 인자 : Bean의 이름 getBean 메소드 두번째 인자 : Bean의 타입 getBean() 메서드의 예외(Exception) 발생 상황 1. Bean의 이름 중 존재하지 않는 Bean 이름의 사용 VersionPrinter versionPrinter = ctx.getBean("versionPrinter2", VersionPrinter.clas..
2021.07.09