Bean의 스코프 알아보기 Bean의 싱글톤 스코프 Bean은 기본적으로 별다른 설정이 없다면 싱글톤의 스코프를 가진다 싱글톤이란 ? 애플리케이션 전반에 걸쳐 Bean의 인스턴스가 오직 1개 뿐이다 한번 직접 확인해보자! Single 클래스와 Proto 클래스를 만들었다 Single은 proto를 주입받았고 AppRunner는 Single과 proto를 주입받았다 AppRunner, Single 각각 Proto를 주입받았지만 싱글톤이기 때문에 둘은 같은 Proto를 참조하고있다! 실행시켜서 결과를 확인해보자! 위에서 알 수 있듯이 기본적으로 싱글톤이다 그럼 매번 인스턴스를 생성하는 프로토타입 스코프는 Bean 에 어떻게 적용할까?! Bean의 프로토타입 스코프 Bean을 프로토 타입으로 만들기 위해서는 ..
@ComponentScan @ComponentScan의 basePackageClasses @ComponentScan은 기준 위치부터 @Component 애너테이션을 찾아 Bean으로 등록해준다! 이 때 스캔 시작점의 위치를 basePackageClasses 통해 정할 수 있다 그럼 해당 클래스부터 해당클래스가 포함되는 위치 그리고 이하의 패키지까지 모두 스캔한다! 보통 이 값을 안주면 @ComponentScan을 선언한 위치부터 스캔한다고 한다! 또한 @ComponentScan을 보면 @Filter를 가질 수 있다 @ComponentScan의 @Filter 아래 그림은 @SpringBooApplication을 타고 들어갔을 때 의 모습이다 @Filter를 통해서 @ComponentScan은 어떤 애터네이..
@Autowired @Autowired란? @Autowired는 의존성을 "타입"을 통해 찾아 주입해주는 역할을 해준다 그래서 사용하면 굉장히 편리해진다! 생성자(스프링 4.3부터 생략 가능), 세터, 필드 에서 사용할 수 있다! 위와 같이 써주면 자동으로 bean을 찾아서 주입해준다! 이 때 bookRepository도 bean으로 등록되어 있지 않다면 값이 안들어가는게 아니라 프로그램이 안돌아간다 왜냐하면 @Autowired는 기본적으로 required 값이 true여서 해당 빈을 못 찾으면 실행이 안된다 그래서 @Autowired(requried=false) 로 쓴다면 오류가 안난다! requred=true 인 것을 기억해두자! 같은 타입의 Bean이 여러개 일 때 @Autowired를 사용하면? ..
스프링 Bean 설정방법 XML파일 통해 Bean 생성 후 setter 사용하기 먼저 application.xml 파일을 통해 bean을 생성하고 setter를 통해 의존성을 주입해보자! BookService 클래스와 BookRepository 클래서가 있다고 하자 우리는 BookService 에 BookRepository를 주입하고 싶다! 이 때 위처럼 태그를 통해 BookService에 해당하는 bookService Bean을 생성하고 BookRepository에 해당하는 bookRepository bean을 생성할 수 있다! 그리고 BookService 클래스 에서는 setter를 통해 bookRepository를 주입받을 수 있다! 그럼 실행 시켜서 결과를 한번 보자 bean의 설정이 있는 xml..