spring-god-study / spring-basic

김영한님 스프링 기본 강의를 듣고 서로 인증하고 힘을 내며 잇쌰잇쌰하는 프로젝트
0 stars 3 forks source link

2021.07.28 (수) 인증 #26

Open kyupid opened 3 years ago

kyupid commented 3 years ago

역할과 구현을 분리해서 순수자바로 설계/개발 하는것을 따라해봄 다음과제는 실제로 정률 할인정책이라던가 를 적용했을때 잘 적용되는지를 보자 2021-07-28_21-22-40

arangeblue commented 3 years ago

강의명 : 스프링 MVC 1편 수강회차 : 스프링 MVC 섹션 4 마무리

"프레임워크나 공통 기능이 수고로워야 사용하는 개발자 또는 사용자가 편리해진다."

MVC 패턴

프론트 컨트롤러

viewResolver란? : 컨트롤러가 반환한 논리 뷰 이름을 실제 물리 뷰 경로로 변경해준다. 또 그 물리 경로에 있는 view의 객체를 반환한다.

adapter란?: 지금까지는 한 가지 컨트롤러 인터페이스만을 사용했는데, 실제로는 수없이 많은 컨트롤러 인터페이스를 사용할 것이다. 우리는 프론트 컨트롤러를 만들었고 많은 종류의 컨트롤러를 대응시켜야하는데 이때 필요한 것이 컨트롤러에 맞는 adapter이다. 마치 우리가 110v와 220v전기를 쓰기 위해 두 가지 플러그를 사용하는 것처럼

handler adapter란? 지금까지는 컨트롤러를 직접 호출했다. 이제부터 컨트롤러를 handler라고 보고 우린 가지고 있는 handler와 가지고 있는 adapter가 서로 맞는지 조회해야 한다. 즉 컨트롤러들을 찾고, 거기에 맞는 adapter가 있는지 조회한 다음 handlerAdapter는 이 정보를 가지고 실제 컨트롤러를 호출하여 modelView를 반환한다.

MVC 프레임워크 동작 순서

image

cxz5309 commented 3 years ago

최근에 할 일이 많아서 많이 못했네요..

7. 의존관계 자동 주입

다양한 의존관계 주입 방법

의존관계 주입은 크게 4가지 방법이 있다.

  1. 생성자 주입
  2. 수정자 주입(setter 주입)
  3. 필드 주입
  4. 일반 메서드 주입

생성자 주입

특징

수정자 주입(setter 주입)

특징

필드 주입

이름 그대로 필드에 바로 주입하는 방법이다. 특징

일반 메서드 주입

일반 메서드를 통해서 주입 받을 수 있다. 특징

옵션 처리

자동 주입 대상을 옵션으로 처리하는 방법은 다음과 같다.

  1. @Autowired(required=false) : 자동 주입할 대상이 없으면 수정자 메서드 자체가 호출 안됨
  2. org.springframework.lang.@Nullable : 자동 주입할 대상이 없으면 null이 입력된다.
  3. Optional<> : 자동 주입할 대상이 없으면 Optional.empty 가 입력된다.
juvelop17 commented 3 years ago

스프링 빈과 의존관계

컴포넌트 스캔과 자동 의존관계 설정

오류 발생

Consider defining a bean of type 'hello.hellospring.service.MemberService' in your configuration.

참고: helloController는 스프링이 제공하는 컨트롤러여서 스프링 빈으로 자동 등록된다. @Controller 가 있으면 자동으로 등록된다.

스프링 빈을 등록하는 2가지 방법

컴포넌트 스캔 원리

참고: 생성자에 @Autowired 를 사용하면 객체 생성 시점에 스프링 컨테이너에서 해당 스프링 빈을 찾아서 주입한다. 생성자가 1개만 있으면 @Autowired 는 생략할 수 있다.

참고: 스프링은 스프링 컨테이너에 스프링 빈을 등록할 때, 기본으로 싱글톤으로 등록한다(유일하게 하나만 등록해서 공유한다) 따라서 같은 스프링 빈이면 모두 같은 인스턴스다. 설정으로 싱글톤이 아니게 설정할 수 있지만, 특별한 경우를 제외하면 대부분 싱글톤을 사용한다.