JAVA(240)
-
3. 스프링 DI(Dependency Injection) #5 두 개 이상의 설정 파일 사용하기
본 글은 최범균 저자의 초보 웹 개발자를 위한 스프링5 프로그래밍 입문의 내용을 복습하기 위해 작성된 글입니다. 8. 두 개 이상의 설정 파일 사용하기 스프링을 이용해서 어플리케이션을 개발하다보면 적게는 수십 개에서 많게는 수백여 개 이상의 빈을 설정하게 된다. 설정하는 빈의 개수가 증가하면 한 개의 클래스 파일에 설정하는 것보다 영역별로 설정 파일을 나누면 관리하기가 편해진다. @Autowired를 이용한 두 개이상의 설정 파일 사용 스프링은 한 개 이상의 설정 파일을 이용해서 컨테이너를 생성할 수 있다. 아래의 두 설정 클래스 파일은 이전에 작성한 AppCtx.java의 빈 설정을 나누어서 설정한 것이다. AppConf1.java @Configuration public class AppConf1 { ..
2021.07.06 -
3. 스프링 DI(Dependency Injection) #4 @Configuration 설정 클래스의 @Bean 설정과 싱글톤
본 글은 최범균 저자의 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용의 복습을 위해 작성된 글입니다. 7. @Configuration 설정 클래스의 @Bean 설정과 싱글톤 앞서 작성한 AppCtx 클래스의 일부는 다음과 같다. @Configuration public class AppCtx{ @Bean public MemberDao memberDao() { return new MemberDao(); } @Bean public MemberRegisterService memberRegSvc() { return new MemberRegisterService(memberDao()); } @Bean public ChangePasswordService changePwdSvc() { ChangePass..
2021.07.02 -
3. 스프링 DI(Dependency Injection) #3 스프링 DI 설정
본 글은 최범균 저자의 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 6. 스프링의 DI 설정 실제로 스프링은 앞서 구현한 조립기와 유사한 기능을 제공한다. 즉 스프링은 Assembler 클래스의 생성자 코드처럼 필요한 객체를 생성하고 생성한 객체에 의존을 주입한다. 또한 스프링은 Assembler#getMemberRegisterService() 메서드처럼 객체를 제공하는 기능을 정의하고 있다. 차이점이라면 Assembler는 MemberRegisterService나 MemberDao와 같이 특정 타입의 클래스만 생성한 반면 스프링은 범용 조립기라는 점이다. 6.1 스프링을 이용한 객체 조립과 사용 스프링을 사용하려면 먼저 어떤 객체를 생성하고, 의존을 어..
2021.07.02 -
3. 스프링 DI(Dependency Injection) #2 객체 조립
본 글은 최범균 저자의 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 4. 예제 프로젝트 만들기 예제 프로젝트 클래스 구성 회원 데이터 관련 클래스 Member WrongIdPasswordException MemberDao 회원 가입 처리 관련 클래스 DuplicateMemberException RegisterRequest MemberRegisterService 암호 변경 관련 클래스 MemberNotFoundException ChangePasswordService 예제 프로젝트 클래스 소스코드 https://github.com/yonghwankim-dev/spring5/tree/master/sp5-chap03/src/main/java/spring yong..
2021.07.02 -
3. 스프링 DI(Dependency Injection) #1 객체 의존과 의존 주입(DI)
본 글은 최범균 저자의 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 1. 의존이란? DI는 'Dependency Injection'의 약자로 우리말로는 '의존 주입'이라고 번역한다. 여기서 말하는 의존은 객체 간의 의존을 의미한다. 예를 들어 회원 가입을 처리하는 기능을 구현하는 다음의 코드를 보자. 서로 다른 회원은 동일한 이메일 주소를 사용할 수 없음 해당 제약사항을 처리하기 위해 MemberRegisterService 클래스는 MemberDao 객체의 selectByEmail() 메서드를 이용하여 동일한 이메일을 가진 회원 데이터가 존재하는지 확인 만약 같은 이메일을 가진 회원 데이터가 존재하면 예외 발생 같은 이메일을 가진 회원 데이터가 존재하지 ..
2021.07.02 -
2. 스프링 시작하기 #3 싱글톤(Singleton) 객체
2.1 싱글톤(Singleton) 객체 package chap02; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Main2 { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class); Greeter g1 = ctx.getBean("greeter", Greeter.class); Greeter g2 = ctx.getBean("greeter", Greeter.class); System.out.pr..
2021.07.01