목록Spring (29)
mojo's Blog

시작하기에 앞서 ... org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [appConfig.xml]; nested exception is java.lang.IllegalArgumentException: protocol = http host = null 와 같은 에러를 발견하게 될 경우 와 같이 http:// 다음에 라인개행이 있으면 안된다. 아래와 같이 라인개행이 없어야 한다. 웹 애플리케이션과 싱글톤 package hello.core.singleton; import hello.core.AppConfig; import h..

스프링 컨테이너 생성 ※ 스프링 컨테이너가 생성되는 과정 // 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ... ApplicationContext를 스프링 컨테이너이며 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애너테이션 기반의 자바 설정 클래스로 만들 수 있다. 이전에 AppConfig를 사용했던 방식이 애너테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. ① 스프링 컨테이너를 생성한다. new AnnotationConfigApplicationContext(AppConfig.class) 스프링 컨테이너를 생성할 ..

AppConfig 리팩터링 public class AppConfig { public MemberService memberService(){ return new MemberServiceImpl(new MemoryMemberRepository()); } public OrderService orderService(){ return new OrderServiceImpl(new MemoryMemberRepository(), new FixDiscountPolicy()); } } 위 코드를 보면 AppConfig 클래스 내에 MemoryMemberRepository 를 두 번 객체를 생성해서 인자값을 취하고 있으며 FixDiscountPolicy 또한 객체를 하나 생성해서 인자값을 취하고 있다. 역할과 구현 클래스가..

새로운 할인 정책 개발 이번엔 10% 할인이 적용되도록 해야 한다. 우선 [discount] 폴더 아래에 RateDiscountPolicy 클래스를 생성하고 다음과 같이 코드를 작성한다. package hello.core.discount; import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements DiscountPolicy{ private int discountPercent = 10; public int discount(Member member, int price){ if(member.getGrade() == Grade.VIP){ return price * discount..

회원 설계 ※ 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. 회원 도메인 협력 관계 회원 클래스 다이어그램 회원 도메인 개발 [java] -> [hello] 아래에 core 디렉토리를 만들고 그 아래에 member 디렉토리를 만든다. 그리고 총 6개의 클래스 및 인터페이스 코드를 아래와 같이 작성한다. ① Grade (class) package hello.core.member; public enum Grade { BASIC, VIP } ② Member (class) package hello.core.member; public class Member { private Long id; priva..

※ 스프링의 핵심 스프링은 자바 언어 기반의 프레임워크이다. 자바 언어의 가장 큰 특징으로 객체 지향 언어이다. 스프링은 객체 지향 언어가 가장 강력한 특징을 살려내는 프레임워크이다. 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크이다. 객체 지향 프로그래밍이란? ※ 객체 지향 프로그래밍 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받으며 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. ※ 역할과 구현을 분리 역할과 구현으로 구분하면 세상이 단순해지고..