Spring

· Spring
이번에는 스프링 프레임워크에서 생성자 주입을 활용한 의존성 주입에 대해 알아보겠습니다. 생성자 주입은 스프링의 강력한 기능 중 하나로, 객체 간의 의존성을 외부에서 주입하는 방식을 제공합니다. 1. 생성자 주입이란? 생성자 주입은 객체를 생성할 때 외부에서 의존하는 객체를 주입하는 방식입니다. 이는 객체 간의 결합도를 낮추고 코드의 유연성을 높이는 데에 큰 도움이 됩니다. public class MemberRegisterService { private MemberDao memberDao; // 생성자를 통해 의존 객체 주입 public MemberRegisterService(MemberDao memberDao) { this.memberDao = memberDao; } // ... 이하 생략 } 2. 스프..
· Spring
빈 생명주기 콜백 시작 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면 객체의 초기화와 종료 작업이 필요하다. 스프링 빈은 간단하게 다음과 같은 라이프 사이클을 가진다. ****객체 생성 → 의존관계 주입**** 스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에, 필요한 데이터를 사용할 수 있는 준비가 완료된다. 따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 한다. 개발자가 의존관계 주입이 모두 완료된 시점을 아는 방법은.. 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해 초기화 시점을 알려주는 다양한 기능을 제공하며, 스프링 컨테이..
· Spring
웹 스코프의 특징 웹 스코프는 웹 환경에서만 동작 웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리한다. 종료 메서드가 호출 된다. 웹 스코프 종류 request HTTP 요청 하나가 들어오고 나갈 때까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고 관리된다. Session HTTP Session과 동일한 생명주기를 가지는 스코프 application 서블릿 컨텍스트( ServletContext ) 와 동일한 생명주기를 가지는 스코프 websocket 웹 소켓과 동일한 생명주기를 가지는 스코프 HTTP request 요청 당 각각 할당되는 request 스코프 request 스코프의 동작 방식에 대해 간략히 알아보았다. 하지만 request 스코프는 실..
· Spring
본 포스팅은 학습용으로, 김영한 님의 강의를 바탕으로 복습용도로 작성되었습니다. 스프링 컨테이너에 프로토타입 스코프의 빈을 요청하면 항상 새로운 객체 인스턴스를 생성해서 반환한다. 그렇다면 싱글톤 빈에서 프로토 타입 빈을 사용하는 경우는 어떻게 동작할까? 싱글톤 빈에서 프로토타입 빈 사용 싱글톤 빈에서 프로토타입 빈을 사용하면 다음과 같은 문제가 발생한다. clientBean은 싱글톤이므로, 스프링 컨테이너 생성 시점에 함께 생성되고, 의존관계 주입도 발생 clientBean은 의존관계 자동 주입을 사용한다. 주입 시점에 스프링 컨테이너에 프로토타입 빈을 요청한다. 스프링 컨테이너는 프로토타입 빈을 생성해서 clientBean에 반환한다. 프로토타입 빈을 요요청한다. 이제 clientBean은 프로토타입..
· Spring
본 포스팅은 학습용으로, 김영한님의 강의를 바탕으로 복습용도로 작성되었습니다. 빈 스코프 빈이 존재할 수 있는 범위 스프링 빈이 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료될 때까지 유지된다. → 기본적으로 스프링은 싱글톤 스코프로 생성되기 때문이다. 스코프 종류 싱글톤 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여, 매우 짧은 범위의 스코프 웹 스코프 request : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프 session : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프 application 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 프로토타입과 싱글..
· Spring
본 포스팅은 학습용으로, 김영한 님의 강의를 바탕으로 복습용도로 작성되었습니다. 컴포넌트 스캔 과 의존관계 자동 주입 컴포넌트 스캔 컴포넌트 스캔은 스프링이 설정 정보 없이, 자동으로 스프링 빈을 등록하는 것을 말한다. 의존관계도 자동을 주입하는 @Autowired라는 기능도 제공한다. 컴포넌트 스캔을 사용하는 예) AutoAppConfig.java package hello.core; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; import org.springframework.context.annotation.Bean; import org.springframework.context.an..
· Spring
본 포스팅은 학습용으로, 김영한 님의 강의를 바탕으로 복습용도로 작성되었습니다. 선행 게시물 [Spring] 싱글톤 컨테이너 [Spring] 싱글톤 컨테이너 본 포스팅은 학습용으로, 김영한 님의 강의를 바탕으로 복습용도로 작성되었습니다. 웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생 대부분의 스 muscleking3426.tistory.com 싱글톤 방식의 주의점 싱글톤 패턴, 스프링의 싱글톤 컨테이너 등 객체 인스턴스를 하나만 생성해서 공유하는 싱글톤 방식은 여러 클라이언트가 하나의 같은 객체 인스턴스를 공유하기 때문에 싱글톤 객체는 상태를 유지하게 설계하면 안 된다. → stateless 무상태로 설계해야 한다. 특정 클라이언트에 의존적인 필드가 존재하면 안..
· Spring
본 포스팅은 학습용으로, 김영한 님의 강의를 바탕으로 복습용도로 작성되었습니다. 웹 애플리케이션과 싱글톤 스프링은 태생이 기업용 온라인 서비스 기술을 지원하기 위해 탄생 대부분의 스프링 애플리케이션은 웹 애플리케이션 → 물론 웹 아닌 애플리케이션도 개발 가능 웹 애플리케이션은 보통 여러 고객이 동시에 요청 순수 DI 컨테이너 테스트 SingletonTest public class SingletonTest { @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer() { AppConfig appConfig = new AppConfig(); //1. 조회 : 호출 할 때 마다 객체 생성 MemberService memberService1 = appConfi..
· Spring
본 포스팅은 학습용으로, 김영한 님의 강의를 바탕으로 복습용도로 작성되었습니다. 선행 게시물 [Spring] 스프링 컨테이너 생성 [Spring] 스프링 컨테이너 생성 본 포스팅은 학습용으로, 김영한 님의 강의를 바탕으로 복습용도로 작성되었습니다. 스프링 컨테이너 생성 스프링 컨테이너 생성 과정 ApplicationContext applicationContext = new AnnotationConfigApplicationConte muscleking3426.tistory.com 컨테이너에 등록된 모든 빈 조회 Test 를 활용 ApplicationContextInfoTest import hello.core.AppConfig; import org.junit.jupiter.api.DisplayName; im..
· Spring
본 포스팅은 학습용으로, 김영한 님의 강의를 바탕으로 복습용도로 작성되었습니다. 스프링 컨테이너 생성 스프링 컨테이너 생성 과정 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext 스프링 컨테이너 인터페이스 스프링 컨테이너 XML 기반 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. AnnotationConfigApplicationContext ApplicationContext 인터페이스를 구현한 구현체 1. 스프링 컨테이너 생성 스프링 컨테이너를 생성 시, 구성 정보를 지정해주어야 한다. AppConfig.class @Configuration ..
runnnerDevHong
'Spring' 카테고리의 글 목록 (6 Page)