Open kyupid opened 3 years ago
강의명 : 스프링 MVC 1편 수강회차 : 스프링 MVC 섹션 4 마무리
"프레임워크나 공통 기능이 수고로워야 사용하는 개발자 또는 사용자가 편리해진다."
MVC 패턴
프론트 컨트롤러
viewResolver란? : 컨트롤러가 반환한 논리 뷰 이름을 실제 물리 뷰 경로로 변경해준다. 또 그 물리 경로에 있는 view의 객체를 반환한다.
adapter란?: 지금까지는 한 가지 컨트롤러 인터페이스만을 사용했는데, 실제로는 수없이 많은 컨트롤러 인터페이스를 사용할 것이다. 우리는 프론트 컨트롤러를 만들었고 많은 종류의 컨트롤러를 대응시켜야하는데 이때 필요한 것이 컨트롤러에 맞는 adapter이다. 마치 우리가 110v와 220v전기를 쓰기 위해 두 가지 플러그를 사용하는 것처럼
handler adapter란? 지금까지는 컨트롤러를 직접 호출했다. 이제부터 컨트롤러를 handler라고 보고 우린 가지고 있는 handler와 가지고 있는 adapter가 서로 맞는지 조회해야 한다. 즉 컨트롤러들을 찾고, 거기에 맞는 adapter가 있는지 조회한 다음 handlerAdapter는 이 정보를 가지고 실제 컨트롤러를 호출하여 modelView를 반환한다.
MVC 프레임워크 동작 순서
최근에 할 일이 많아서 많이 못했네요..
의존관계 주입은 크게 4가지 방법이 있다.
특징
특징
이름 그대로 필드에 바로 주입하는 방법이다. 특징
일반 메서드를 통해서 주입 받을 수 있다. 특징
자동 주입 대상을 옵션으로 처리하는 방법은 다음과 같다.
스프링 빈과 의존관계
@Autowired
가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다. 이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI (Dependency Injection), 의존성 주입이라 한다. Consider defining a bean of type 'hello.hellospring.service.MemberService' in your configuration.
참고: helloController는 스프링이 제공하는 컨트롤러여서 스프링 빈으로 자동 등록된다. @Controller 가 있으면 자동으로 등록된다.
@Component : 애노테이션이 있으면 스프링 빈으로 자동 등록된다.
@Controller : 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문이다.
@Component를 포함하는 다음 애노테이션도 스프링 빈으로 자동 등록된다.
@Controller
, @Service
, @Repository
참고: 생성자에 @Autowired 를 사용하면 객체 생성 시점에 스프링 컨테이너에서 해당 스프링 빈을 찾아서 주입한다. 생성자가 1개만 있으면 @Autowired 는 생략할 수 있다.
참고: 스프링은 스프링 컨테이너에 스프링 빈을 등록할 때, 기본으로 싱글톤으로 등록한다(유일하게 하나만 등록해서 공유한다) 따라서 같은 스프링 빈이면 모두 같은 인스턴스다. 설정으로 싱글톤이 아니게 설정할 수 있지만, 특별한 경우를 제외하면 대부분 싱글톤을 사용한다.
역할과 구현을 분리해서 순수자바로 설계/개발 하는것을 따라해봄 다음과제는 실제로 정률 할인정책이라던가 를 적용했을때 잘 적용되는지를 보자