본문 바로가기

Spring63

섹션 4-9 [독립 실행형 스프링 애플리케이션] @Conponent 스캔 @Component스캔지난 시간까지 사용했던 스프링 컨테이너에 빈을 등록하는 방법은 클래스 정보를 레지스터 빈 메소드에 넘겨주거나 아니면 팩토리 메소드를 만들어서 직접 빈 인스턴스를 생성하는 방법을 사용했습니다. 그러나 그것보다 좀 더 간결하게 빈을 등록할 수 있는 방법이 있습니다. 그 방법은 @Component, @ComponentScan 애노테이션을 사용하여 Spring Container에게 Bean구성정보를 전달하는 방식입니다.애노테이션 방식으로 Bean을 등록하면 좋은점은 새로운 Bean을 만들어서 추가할때 매번 구성정보를 다시 등록해줄 필요가 없고 간단하게 Component애노테이션을 사용하면 됩니다. 다만 이러한 편리성 이면에는 Bean으로 등록되는 클래스가 굉장히 많아지게 되면 내가 이 애플.. 2024. 6. 1.
섹션 4-8 [독립 실행형 스프링 애플리케이션] 자바코드 구성 정보 사용 자바 코드 구성 정보 사용Spring Container가 사용하는 구성정보를 우리가 만든 코드를 어떻게 오브젝트로 만들어서 Container내에 컴포넌트를 등록해 두고 Spring Container안에 들어있는 우리가  Bean이라고 불리는 오브젝트가 또 다른 오브젝트를 사용한다면 즉 이제 의존하고 있다면 이 관계를 어떻게 맺어줄 것인가 어느 시점에 그 오브젝트를 주입해 줄 것인가 이런 정보들을 Spring Container에다가 구성 정보로 제공을 해줘야합니다. 이러한 구성정보를 제공하는 방법이 여러가지가 있을 수 있지만 예전에는 외부 설정파일을 이용했었지만 요즘은 좀더 쉽고 간결한 여러가지 방법들이 나와있습니다. 그 중 독특한 방법은 Factory Method를 이용하는겁니다. Factory Meth.. 2024. 6. 1.
섹션 4-7 [독립 실행형 스프링 애플리케이션] 스프링 컨테이너로 통합 스프링 컨테이너로 통합지금까지 만든 코드는 SpringContainer를 생성하고 Bean을 등록해서 초기화하는 작업을 해주는 SpringContainer작업 파트와 SpringContiner를 활용하면서 SubletContainer를 코드에서 생성하고 FrontController역할을 하는 DispatcherSublet을 등록하는 SubletContainer초기화 코드로 구분되어 질 수 있습니다.이제는 이러한 작업을 하나로 통합하는 과정을 통해 SubletContainer를 만들고 Sublet을 초기화하는등의 작업을 SpringContiner가 초기화 되는 과정중에 일어나도록 코드를 수정해보도록 하겠습니다. /* Spring Container 구현, DispatcherServlet을 사용하기 .. 2024. 6. 1.
섹션 4-6 [독립 실행형 스프링 애플리케이션] 애노테이션 매핑 정보 사용 애노테이션 매핑 정보 사용기존 코드HelloController.classpackage com.tobyspring.tobyspringboot;import java.util.Objects;public class HelloController { private final HelloService helloService; public HelloController(HelloService helloService) { this.helloService = helloService; } public String hello(String name) { return helloService.sayHello(Objects.requireNonNull(name)); }} 애노테이션 매핑 정보 사용 코드package com.tobysp.. 2024. 6. 1.
섹션 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.