본문 바로가기

BackEnd/Spring16

[스프링 기본] 빈 스코프 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 빈 스코프란?스프링 빈의 생명주기 범위를 정의하며, 기본적으로 싱글톤 스코프를 사용한다. 스코프는 빈이 존재할 수 있는 범위를 뜻한다. 스프링의 다양한 스코프싱글톤: 기본 스코프로, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프.프로토타입: 스프링 컨테이너는 빈의 생성과 의존관계 주입까지만 관여하고 이후에는 관리하지 않는 매우 짧은 범위의 스코프.웹 관련 스코프 :- request: 웹 요청이 들어오고 나갈 때까지 유지되는 스코프.- session: 웹 세션이 생성되고 종료될 때까지 유지되는 스코프.- application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프.  빈 스코프 지정 방법컴포넌트 스캔 자.. 2024. 7. 10.
[스프링 기본] 빈 생명주기 콜백 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 빈 생명주기 콜백 시작스프링에서 객체의 초기화와 종료 작업을 관리하는 방법을 알아보자. 애플리케이션 시작 시 필요한 연결을 미리 설정하고 종료 시에 연결을 해제하는 작업을 수행하려면 객체의 초기화와 종료 작업이 필요하다. 예를 들어, NetworkClient라는 객체가 애플리케이션 시작 시점에 connect() 메서드를 호출하여 연결을 설정을 해야 하고, 종료 시점에 disConnect() 메서드를 호출하여 연결을 끊어야 한다. 예제 코드, 테스트 하위에 생성package hello.core.lifecycle;public class NetworkClient { private String url; public NetworkCli.. 2024. 7. 9.
[스프링 기본] 의존관계 자동 주입 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 다양한 의존관계 주입 방법 의존관계 주입은 크게 4가지 방법이 있다.1. 생성자 주입2. 수정자 주입(setter 주입)3. 필드 주입4. 일반 메서드 주입 1. 생성자 주입@Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy .. 2024. 7. 9.
[스프링 기본] 컴포넌트 스캔 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 컴포넌트 스캔과 의존관계 자동 주입 시작하기- 지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 XML의 을 통해 직접 설정 정보에 등록해야 했다.- 하지만 스프링 빈이 수십, 수백 개가 되면 이를 일일이 등록하기 번거롭고, 누락할 가능성도 있다.- 이러한 반복 작업을 줄이기 위해 스프링은 설정 정보 없이도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 기능과, 의존관계를 자동으로     주입하는 @Autowired 기능을 제공한다. 기존 AppConfig는 코드와 테스트를 유지하기 위해 남겨두고, 새로운 AutoAppConfig를 만든다.package hello.core;import org.springframework.cont.. 2024. 7. 8.
[스프링 기본] 싱글톤 컨테이너 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다.  웹 애플리케이션과 싱글톤- 스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생했다. - 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션도 개발할 수 있다. - 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다.- 클라이언트가 요청할 때마다 객체가 생성된다. (비효율)package hello.core.singleton;import hello.core.AppConfig;import hello.core.member.MemberService;import org.assertj.core.api.Assertions;import org.junit.jupiter.api.DisplayName;import org.. 2024. 7. 7.
[스프링 기본] 컨테이너와 스프링 빈 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 스프링 컨테이너 생성스프링 컨테이너가 생성되는 과정ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);- ApplicationContext를 스프링 컨테이너라고 한다.- ApplicationContext는 인터페이스이다.- 스프링 컨테이너는 XML 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다.- 이전에 AppConfig를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다.- 자바 설정 클래스를 기반으로 스프링 컨테이너(ApplicationContext)를.. 2024. 7. 7.