본문 바로가기
728x90

스프링 기본9

인프런 스프링 기본 강의 정리 #9 1. 빈 스코프란? 스코프는 빈이 존재할 수 있는 범위를 의미한다. 기본적으로 스프링 빈은 싱글톤 빈이기 때문에 스프링 컨테이너 시작시에 생성되고 종료시에 소멸하는 싱글톤 스코프로 존재한다. 이 외에도 스프링은 다양한 범위의 스코프를 지원한다. 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위 스코프 프로토타입 : 스프링 컨테이너는 프로토타입의 빈 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 짧은 범위 스코프 웹관련스코프 request : 웹요청 들어오고 나갈 때까지 유지되는 스코프(http) session : 웹세션이 생성되고 종료될 떄까지 유지되는 스코프 application : 웹의 서블릿컨텍스트와 같은 범위로 유지되는 스코프 빈 스코프는 다음과 같이 지.. 2023. 11. 30.
인프런 스프링 기본 강의 정리 #8 1. 빈 생명주기 콜백 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 외부 네트워크에 미리 연결하는 객체를 하나 생성해보자. src/test/java에 lifecycle 패키지를 생성하고, 그 안에 NetworkClient 클래스를 생성한다. 이 NetworkClient 는 애플리케이션 시작 시점에 connect() 를 호출해서 연결을 맺어두어야 하고, 애플리케이션이 종료되면 disConnect() 를 호출해서 연결을 끊어야 한다. package hello.core.lifecycle; public class NetworkClient { privat.. 2023. 11. 28.
인프런 스프링 기본 강의 정리 #7 1. 다양한 의존관계 주입 방법 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 1) 생성자 주입 이름 그대로 생성자를 통해서 의존 관계를 주입 받는 방법으로 가장 추천되는 방식이다. 생성자 호출 시점에 1번만 호출되며 불변, 필수 객체로 유지된다. 또한 생성자가 1개인 경우 @Autowired를 생략 가능하다. @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } 위 경우는 OderServiceImpl 생.. 2023. 11. 27.
인프런 스프링 기본 강의 정리 #6 1. 컴포넌트 스캔과 의존관계 자동 주입 시작하기 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다. 이러한 과정을 생략하고자 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 또한 의존관계도 자동으로 주입하는 @Autowired라는 기능도 제공한다. 이를 알아보고자 기존 AppConfig.java는 과거 코드와 테스트를 유지하기 위해 남겨두고, src/main/java에 새로운 AutoAppConfig 클래스를 생성한다. import org.springframework.context.annotation.ComponentScan; import org.springframework.c.. 2023. 11. 25.
728x90