728x90 스프링5 Chapter10. 스프링 MVC 프레임워크 동작 방식 스프링 MVC 핵심 구성 요소 스프링 MVC의 핵심 수성 요소와 그들의 관계를 정리하면 다음과 같다. 이 관계도는 API가 아닌 페이지를 응답하는 기준으로 작성되었다. 위 그림에서 "이 붙은 요소는 빈 등록을 요구하는 요소다. JPS, Controller는 사용자가 직접 구현해야 한다. 1. 요청 전송 DispatcherServlet은 클라이언트로 부터 요청을 받고 모든 연결을 담당한다. 2. 요청 URL과 매칭되는 컨트롤러 검색 HandlerMapping 빈 객체에게 컨트롤러 검색을 요청한다. 그러면 HandlerMapping은 클라이언트의 요청 경로를 이용해 이를 처리한 컨트롤러 빈 객체를 DispatcherServlet에 전달한다. 이 때, 스프링에서 컨트롤러를 구현할 수 있는 방식은 다음과 같이 .. 2022. 8. 21. Chapter 8. DB 연동 JDBC를 사용하면 코드에는 디비 연동과 관련된 보일러플레이트가 존재한다. 이 단점을 없애기 위해 스프링은 템플릿 메서드 패턴과 전략 패턴을 엮은 JdbcTemplate을 제공한다. 또 한, 트랜잭션 관리를 쉽게 제공한다. 순수 JDBC API를 사용해 트랜잭션을 처리하려면 다음과 같은 과정이 필요하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 public void insert(Member member) { Connection connection = null; PreparedStatement preparedStatement = null; try { connection = Drive.. 2022. 5. 24. Chapter 6. 빈 라이프사이클 범위 컨테이너 초기화와 종료 스프링 컨테이너는 초기화, 종료 라는 라이프 사이클을 갖는다. 1 2 3 4 5 6 7 8 // 스프링 컨테이너 초기화 // 스프링 컨테이너는 설정 클래스에서 정보를 읽어와 알맞은 빈 객체를 생성하고 // 의존 주입 하는 작업을 수행한다. AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppCtx.class); // 초기화된 컨테이너를 사용한다 - 메서드를 이용해 컨터이너에 보관된 빈 객체를 구한다. Greeting greeting = context.getBean("greeting", Greeting.class); // 컨테이너를 종료한다. context.close(); Colo.. 2022. 5. 5. Chapter 5. 컴포넌트 스캔 컴포넌트 스캔은 스프링이 직접 클래스를 검색해서 빈으로 등록하는 기능이다. 이 기능을 사용하면 설정 클래스를 사용하지 않아도 되므로 설정 코드가 줄어든다. @Componenet 어노테이션을 클래스에 사용해 해당 클래스를 스캔 대상으로 설정할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // @Component 어노테이션만 사용하면 // 클래스 이름에서 첫 글자를 소문자로 바꾼 이름이 // 빈 이름으로 사용된다. @Component public class Bean { public void printHello() { System.out.println("hello"); } } // 속성 값을 주면 해당 속성 값이 빈 이름으로 사용된다. @Component("bean1".. 2022. 5. 2. 이전 1 2 다음 728x90