티스토리 뷰

Spring/Spring IoC

스프링 Bean 설정방법

세진짱 2020. 5. 15. 23:48

스프링 Bean 설정방법


XML파일 통해 Bean 생성 후 setter 사용하기

  • 먼저 application.xml 파일을 통해 bean을 생성하고 setter를 통해 의존성을 주입해보자!

  • BookService 클래스와 BookRepository 클래서가 있다고 하자

  • 우리는 BookService 에 BookRepository를 주입하고 싶다!

  •  이 때 위처럼 <bean> 태그를 통해 BookService에 해당하는 bookService Bean을 생성하고

  • BookRepository에 해당하는 bookRepository bean을 생성할 수 있다!

  • 그리고 BookService 클래스 에서는

  • setter를 통해 bookRepository를 주입받을 수 있다!

  • 그럼 실행 시켜서 결과를 한번 보자

  • bean의 설정이 있는 xml 파일은 스프링 IoC 컨테이너인 Applicationcontext를 통해 읽어들인다

  • application.xml 파일을 통해 빈 설정을 읽어오고 context에서 getBean을 통해 bean을 가져올 수 있다!

  • bean의 목록을 가져와 살펴보자

  • 또한 bookService의 boorRepository를 출력해보면 결과는..?! 

  • 우리가 bookRepository bean을 주입했기 때문에 null이 아닌것을 확인 할 수있다

유후~~ 잘 출력된다!!

  • 근데 이렇게 생성하면 매번 하나하나 <bean>을 통해 만들어야한다

  • 귀찮다..! 좀 더 편한 방법을 살펴보자!!


component-scan을 통해 @애너테이션 사용하기

  • 직접 하나하나 <bean>을 통해 만들지 않고 @를 이용할 수도 있다

  • component-scan을 사용하면 base-package를 등록하고 해당 패키지에서 빈을 스캔할 수 있다!

  • 대표적으로 @Component,@Service,@Repository,@Controller 를 이용해 Bean을 등록할 수 있다

  • 그럼 BookService와 BookRepository를 @를 통해 Bean을 등록해보자

  • @Service와 @Repository는 Bean으로 등록까지만 해준다. 의존성 주입은 @Autowired를 통해서 한다!

  • 뒤에서 @Autowired를 같이 더 살펴봅사다..!

  • 그럼 결과를 다시 실행해보자!

결과 똑같다~~!

  • 결과가 똑같이 나온다..! 이게 훨씬 편하다...!! 처음에 @를 보고 신세계라고 생각했다 넘편해서

  • 근데 xml 파일말고 java 파일로 만들수는 없을까?


ApplicationConfig 파일을 이용해 Bean 설정

  • 있따..!

  • ApplicationConfig 클래스를 만들고 @Configuration 을 넣어주었다

  • 그 후 여기서 @ComponentScan을 사용했따!

  • basePackageClasses 는 최상단의 클래스를 입력해 해당 클래스가 위치한 곳부터 컴포넌트를 스캔하게 만들었다

  • 이번에는 결과를 보기 위해 XML이 아닌

  • AnnotationConfigApplicationContext에 ApplicationConfig로 bean 설정을 가져왔따! 

  • 결과는...!

true 짤림...

  • 잘나온다..! true가 출력되는데 넘길어서 짤려따.. 추가로 applicationConfig도 bean으로 들어가있다

  • 이게 지금 스프링 부트에서 쓰는 방법과 가장 가깝다고 한다..!


@SpringBootApplication 사용하기

  • 스프링 부트에서는 해당 어노테이션을 최상단 클래스에 붙인다

  • 이것만으로도 충분하다..! 왜일까?

  • 해당 인터페이스를 타고들어가보면 @ComponentScan, @Configuration이 다 포함되어 있다!

  • 그래서 최상단의 클래스에서부터 컴포넌트들을 스캔해서 bean을 설정할 수 있다! 

  • 결론적으로 젤 편하다..!

 

이번 글은 bean을 설정하는 방법에 대해 알아봤습니다..!

틀린 내용이 있으면 댓글 좀 부.. 탁..!

 

스프링은 할수록 기초를 잘 해놔야 할 듯 합니다..! 

 

다들 열공~~!

'Spring > Spring IoC' 카테고리의 다른 글

Spring Profile에 대해 알아보자!  (0) 2020.05.18
Bean의 스코프에 대해 알아보자  (3) 2020.05.17
@ComponentScan에 대해 알아보자  (0) 2020.05.17
@Autowired 를 알아보자  (0) 2020.05.16
스프링 IoC 컨테이너와 빈  (1) 2020.05.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함