spring container 5

탐색 위치와 기본 스캔 대상

탐색할 패키지의 시작 위치 지정 모든 클래스를 다 컴포넌트 스캔하면 시간이 오래 걸린다. 그래서 꼭 필요한 위치부터 스캔하도록 시작 위치를 지정할 수 있다. basePackages를 사용하여 스캔할 범위를 지정한다. 위와 같이 작성하면 member패키지 내에서만 컴포넌트 스캔을 진행하여 memberServiceImpl과 memberMemberRepository만 빈으로 등록된다. 확인해보면 위와 같이 3개만 빈으로 등록된 것을 확인할 수 있다. basePackages = {"hello.core", "hello.service"} 와 같이 여러 시작 위치를 지정할 수도 있다. basePackages : 탐색할 패키지의 시작 위치를 지정한다. 이 패키지를 포함해서 하위 패키지를 모두 탐색한다. basePack..

Spring/Spring Core 2021.03.13

Singleton Pattern & Singleton Container

싱글톤 패턴(Singleton Pattern)😁 클래스의 인터스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야 한다. private 생성자를 사용하여 외부에서 임의로 new 키워드를 사용하지 못하게 해야함. 여기에는 Java의 static이라는 개념이 필요하다. wikidocs.net/228 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 이 클래스가 실행되어 JVM이 읽게되면 먼저 static영역에 instance 객체를 하나 생성한다. 후에 이 객체 인스턴스가 필요하면 getInstance를 통해서만 가져올 수 있다. 이는 항상 같은 인스턴스를 반환한다. 새로 생성하는 것이 아닌 미리 만들어두고 계속 가져다 쓰는 것 ..

Spring/Spring Core 2021.03.11

Container에 등록된 Bean 조회

스프링 컨테이너에서 실제 스프링 빈들이 잘 등록 되었는지 확인해보자. Junit 테스트 코드로 작성 1. 모든 빈 출력 Bean명과 담겨있는 객체들을 출력하였다. 위의 org.springFramework ~~ 들은 스프링이 내부적으로 스프링 자체를 확장하기 위해 쓰는 Bean들이다. ac.getBeanDefinitionNames() : 스프링에 등록된 모든 빈 이름을 조회 ac.getBean() : 빈 이름으로 빈 객체(인스턴스)를 조회 2. 애플리케이션 빈 출력 getBeanDefinition : Bean에 대한 메타데이터 정보 getRole() : Bean의 역할을 가져오는 메소드 getRole이 ROLE_APPLICATION이라는 뜻은 스프링이 내부적으로 등록한 Bean이 아니라 우리가 Applic..

Spring/Spring Core 2021.03.08

Spring Container

스프링 컨테이너😙 ApplicationContext 를 스프링 컨테이너라 한다. ApplicationContext 는 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 직전에 AppConfig 를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것 이다. 자바 설정 클래스를 기반으로 스프링 컨테이너( ApplicationContext )를 만들어보자. new AnnotationConfigApplicationContext(AppConfig.class); 이 클래스는 ApplicationContext 인터페이스의 구현체이다. > 참고: 더 정확히는 스프링 컨테이너를 부를 때 BeanFactory , Appli..

Spring/Spring Core 2021.03.08

Spring으로 변환 (자~~ 드가자~)

스프링 형식으로 AppConfig 변경 @Configuration : 설정 정보, 애플리케이션의 구성 정보를 담당한다는 뜻의 애노테이션 @Bean : 스프링 빈으로 등록 MemberApp 클래스 ApplicationContext ==> 스프링 컨테이너라고 보면 된다. 앞서 등록한 Bean들을 모두 관리해주는 역할 Parameter로 우리가 만든 AppConfig을 넣어주면 AppConfig의 환경설정 정보를 가지고 객체를 생성하고(@Bean) 스프링 컨테이너에 모두 집어넣은 후 관리해준다. getBean에는 이름과 반환 타입을 적어줘야함. 어떤 Bean을 꺼낼 것인지(메서드 이름) 실행시켜보자! 정상 작동하는 것을 확인할 수 있다. 자세히 살펴보면 appConfig, memberService, membe..

Spring/Spring Core 2021.03.05
반응형