본문 바로가기

container6

섹션 4-10 [독립 실행형 스프링 애플리케이션] Bean 생명주기 메소드 Bean생명주기 메소드지금까지 우리는 비즈니스를 처리하기 위해 HelloController, HelloService를 Bean으로 등록하고 관리하였습니다 그러나 이외 추가적으로 오브젝트를 새로 생성하는 게 두가지 정도가 있습니다. TomcatServletWebServerFactory, DispatcherServlet 입니다. Standart Alone애플리케이션을 만들기 위해서 보이지 않는곳에서 일을 해주는 오브젝트를 만들어야 해서 직접 코드로 생성을 했는데 이러한 오브젝트들도 Spring Bean으로 등록하여 관리될 수 있도록 코드를 수정하려고 합니다. TobyspringbootApplication.classpackage com.tobyspring.tobyspringboot; import or.. 2024. 6. 1.
섹션 4-7 [독립 실행형 스프링 애플리케이션] 스프링 컨테이너로 통합 스프링 컨테이너로 통합지금까지 만든 코드는 SpringContainer를 생성하고 Bean을 등록해서 초기화하는 작업을 해주는 SpringContainer작업 파트와 SpringContiner를 활용하면서 SubletContainer를 코드에서 생성하고 FrontController역할을 하는 DispatcherSublet을 등록하는 SubletContainer초기화 코드로 구분되어 질 수 있습니다.이제는 이러한 작업을 하나로 통합하는 과정을 통해 SubletContainer를 만들고 Sublet을 초기화하는등의 작업을 SpringContiner가 초기화 되는 과정중에 일어나도록 코드를 수정해보도록 하겠습니다. /* Spring Container 구현, DispatcherServlet을 사용하기 .. 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.