스프링 생태계
스프링은 어떤 특정한 하나가 아니라 여러가지 기술들의 모음이라고 볼수 있다.
먼저 스프링의 핵심인 스프링 프레임워크
여러 스프링 기술들을 편리하게 사용할 수 있게끔해주는 스프링부트
그리고 나머지 선택사항들
https://moolgogiheart.tistory.com/87
스프링 프레임워크
스프링프레임워크만 쓰는게 아니고
스프링 프레임워크를 편리하게 사용할 수 있는
스프링 부트
라는것을 통해서 스프링 프레임워크를 사용한다.
객체 지향 프로그래밍
다형성 예시
운전자는 운전을 하는 역할이다.
자동차의 역할이있고 자동차를 구현한 k3,아반떼,테슬라 모델3가있다.
운전자는 자동차가 바뀌어도, 운전을 하는데 영향이 없다.
여기서 역할은 인터페이스이고 구현은 인터페이스 객체 (구현체)를 의미한다.
운전자는 자동차의 역할에 대해서만 의존하고있다.
어떤 자동차가 나와도 기존 자동차의 역할을 구현한다면 운전자는 바뀔필요가없다 (운전가능)
멤버서비스가 save를 호출하면 구현체에서 구현된(오버라이딩) save가 실행된다.
@Bean
public MemberService memberService() {
return new MemberService(memberRepository);
}
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
// return new JdbcTemplateMemberRepository(dataSource);
// return new jpaMemberRepository(em);
//
}
이런식으로 멤버리포지토리는 어떤 구현체든 받을 수 있다.
이전 스프링 입문에서
리포지토리를 바꿔가는데 다른코드에 영향이없었다 -> why? : 스프링의 di 컨테이너, 의존관계주입이 다형성과 합쳐져서 가능했던것이다.
'인프런 > 스프링핵심원리(기본)' 카테고리의 다른 글
6)새로운 할인 정책 개발 , 적용과 문제점 , 문제점 해결 (의존성 주입) (0) | 2022.12.09 |
---|---|
5)주문과 할인 도메인 설계와 개발 (0) | 2022.12.07 |
4)회원 도메인 설계,회원 도메인 개발 (0) | 2022.12.01 |
3)예제프로젝트 시작, 비즈니스 요구사항과 설계 (0) | 2022.12.01 |
2)좋은 객체 지향설계의 5가지 원칙(SOLID), 객체지향 설계와 스프링 (0) | 2022.12.01 |
댓글