분류 전체보기68 섹션 4-5 [독립 실행형 스프링 애플리케이션] DispatcherServlet으로 전환 DispatcherServlet로 전환기존 코드TobyspringbootApplication.classpackage com.tobyspring.tobyspringboot; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.boot.autoconfigure.SpringB.. 2024. 6. 1. 섹션 4-4 [독립 실행형 스프링 애플리케이션] 의존 오브젝트 DI 적용 의존 오브젝트 DI 적용현재까지 구성한 코드는 HelloController가 SimpleHelloService라는 클래스의 오브젝트를 직접 생성해서 사용하는 방식이였는데 직접 생성해서 사용하는 방식이 아닌 Sprinb Bean으로 등록하고 Spring Container가 Assembler로서 Dependency Injection 즉 SimpleHelloService bean오브젝트를 HelloController가 사용할 수 있도록 주입해주도록 구현해보겠습니다. 기존 코드HelloController.classpackage com.tobyspring.tobyspringboot; import java.util.Objects; public class HelloController { pu.. 2024. 6. 1. 섹션 4-3 [독립 실행형 스프링 애플리케이션] 의존성 역전 의존성 역전 Dependency Injection ( Spring IoC / DI Container )의존관계란 무엇인가? HelloController는 SimpleHelloService 클래스가 변경되면 영향을 받습니다. 기능이 변경된다던지 메소드가 변경된다던지 할 경우 또는 다른 종류의 클래스 변경되면 HelloController는 영향을 받습니다. 런타임시에 동작하는 기능상에 영향을 주기도 하고 어떤 경우는 소스코드를 고쳐야지만 컴파일되고 동작할 수 있는 정도의 수준의 영향을 받기도 합니다.HelloController가 뭔가 다른 클래스 다른 오브젝트 기능을 사용하게 되면 헬로 컨트롤러는 그 클래스에 의존하고 있다. 이야기할 수 있습니다. 다만 의존관계의 문제점은 HelloController는 Si.. 2024. 6. 1. 섹션 4-2 [독립 실행형 스프링 애플리케이션] 의존 오브젝트 추가 의존 오브젝트 추가스프링 컨테이너는 어떤 타입의 오브젝트를 만들때 딱 한번만 생성합니다. 스프링 컨테이너가 가지고 있는 오브젝트를 필요로 하는 여러 오브젝트들이 있을 수 있는데 스프링 컨테이너에 어떤 타입의 빈을 요청할때마다 새로운 오브젝트를 만들어서 제공하는게 아니라 초기에 생성해둔 오브젝트 단하나를 계속해서 제공하여 재사용할 수 있게 합니다. 스프링 컨테이너는 싱글턴 패턴을 사용한 것과 유사하게 어떤 타입의 오브젝트를 딱 한번만 만들어두고 이 오브젝트를 계속 재상용할 수 있게 해주는 기능을 제공합니다. 그래서 스프링 컨테이너를 싱글톤 레지스트리라고도 부릅니다. 이제 HelloController의 책임을 줄여보도록 하겠습니다. HelloController는 클라이언트의 요청만 검증하고 비즈니스 로직은 .. 2024. 6. 1. 섹션 4-1 [독립 실행형 스프링 애플리케이션] 스프링 컨테이너 사용 스프링 컨테이너 사용지난 시간에는 프론트 컨트롤러에 HelloController라는 오브젝트를 하나 만든다음 HelloController를 사용하는 방식으로 구현을 했는데 이제는 스프링 컨테이너 안에서 관리될 수 있도록 HelloController를 구현해보도록 하겠습니다. 스프링 컨테이너는 크게 두가지를 필요로 하는데 비즈니스 오브젝트 포조 라고 하는 자바 오브젝트를 가 필요합니다. 또한 포조 자바 객체를 만든 코드를 어떤식으로 구성할지에 대한 정보를 담고있는 Configuration Metadata를 필요로 합니다. package com.tobyspring.tobyspringboot; import java.io.IOException; import javax.servlet.ServletCo.. 2024. 6. 1. 섹션 3-7 [독립 실행형 서블릿 애플리케이션] Hello 컨트롤러 맵핑과 바인딩 Hello 컨트롤러 매핑과 바인딩맵핑은 웹 요청에 들어있는 정보를 활용해서 어떤 로직을 수행하는 코드를 호출할 것인가 결정하는 작업이다. /hello 요청이 들어오면 helloController에 hello메소드를 호출해서 로직을 수행하고 그 결과를 리턴하게 한다.바인딩은 헬로 컨트롤러는 웹 요청이나 웹 응답을 직접 노출하는 기술적인 타입을 사용하지 않았습니다. 컨트롤러를 구현한다 하더라도 직접적으로 웹 요청과 응답을 다루는 오브젝트를 사용하지 않습니다. 따라서 파라미터로 넘어온 name값을 String 타입으로 hello 메소드를 호출할 때 인자값으로 넘겨주는 작업을 바인딩이라고 합니다. form을 통해서 굉장히 많은 정보들이 넘어왔을때 dto등을 java bean 형태의 오브젝트를 만들어서 그 안에.. 2024. 5. 30. 이전 1 ··· 5 6 7 8 9 10 11 12 다음