Back-End/Spring126 [Spring] 의존관계 자동 주입 방법 이 글은 김영한 님의 스프링 핵심 원리 - 기본편(https://inf.run/ZtdV)을 수강하며 정리한 글입니다. 생성자 주입수정자 주입(setter 주입)필드 주입일반 메서드 주입의존관계 자동 주입은 스프링 컨테이너가 관리하는 스프링 빈이어야 동작한다는 것을 전제로 한다. 생성자 주입 생성자 호출 시점에 딱 1번만 호출되는 것이 보장된다.불변, 필수 의존관계에 사용한다. (이후에 값을 수정할 수 없어서 안전하다.)@Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository private final DiscountPolicy discountPoli.. 2022. 3. 20. [Spring] 🌟 컴포넌트 스캔과 의존관계 자동 주입 이 글은 김영한 님의 스프링 핵심 원리 - 기본편을 수강하며 정리한 글입니다. 컴포넌트 스캔@ComponentScan 설정 정보가 없어도 @Component가 붙은 모든 클래스를 자동으로 스프링 빈으로 등록한다.@Configuration@ComponentScanpublic class AutoAppConfig { // 의존관계는 @Autowired를 사용하여 주입한다 // 구현체인 MemoryMemberRepository, RateDiscountPolicy, ... 클래스에 @Component를 붙인다} 🌳 필터includeFilters: 컴포넌트 스캔 대상을 추가로 지정excludeFilters: 컴포넌트 스캔에서 제외할 대상을 지정더보기@Target(ElementType.TYPE)@.. 2022. 3. 19. [Spring] 싱글톤 컨테이너 - 웹 애플리케이션과 싱글톤 이 글은 김영한 님의 스프링 핵심 원리 - 기본편을 수강하며 정리한 글입니다. 싱글톤 패턴 스프링 컨테이너를 쓰면 스프링 컨테이너가 객체들을 싱글톤으로 만들어서 관리해 준다!클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다.웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 스프링 없는 순수한 DI 컨테이너의 경우 는 요청을 할 때마다 객체를 새로 생성하므로 메모리 낭비가 심하다. 해당 객체가 딱 1개만 생성되고, 공유하는 싱글톤 패턴의 적용이 필요하다.더보기 private static final SingletonService instance = new SingletonService(); // 자기 자신을 static으로 가진다 public static Sing.. 2022. 3. 17. 인프런 스프링 강의 보호되어 있는 글 입니다. 2022. 3. 9. [Spring] BeanFactory와 ApplicationContext 이 글은 김영한 님의 스프링 핵심 원리 - 기본편을 수강하며 정리한 글입니다. BeanFactory스프링 컨테이너의 최상위 인터페이스스프링 빈을 관리하고 조회하는 역할getBean()을 제공 ApplicationContextBeanFactory 기능을 모두 상속받아서 제공빈을 관리하고 검색하는 기능 외 수많은 부가 기능을 제공MessageSource: 국제화 기능EnvironmentCapable: 환경 변수 (로컬, 개발, 운영 등을 구분해서 처리)ApplicationEventPublisher: 이벤트 발행 및 구독 모델 지원ResourceLoader: 파일, 클래스패스, 외부(URL) 등에서 리소스를 편리하게 조회 BeanDefinition빈 설정 메타 정보, 인터페이스 아래는 애노테이션 기반 자.. 2022. 3. 8. [Spring] 스프링 빈 조회 이 글은 김영한 님의 스프링 핵심 원리 - 기본편을 수강하며 정리한 글입니다. 🌳 모든 빈 출력하기getBeanDefinitionNames(): 스프링 내부 빈 + 개발자가 등록한 빈 모두 출력getBean(빈 이름, 타입), getBean(타입): 빈 이름으로 빈 객체(인스턴스)를 조회한다. String[] Names = ac.getBeanDefinitionNames(); for (String Name : Names) { Object bean = ac.getBean(Name); System.out.println("bean = " + Name + " object = " + bean); // Key, Value 출력 } 🌳 내가 등록한 빈만 출력하기getBean.. 2022. 3. 8. 이전 1 ··· 14 15 16 17 18 19 20 21 다음