16. init, destroy 메서드
xml파일로 init, destroy메서드등록과 자바파일로 등록하는법 비교해보면 아래와 같다.
17. 주입
xml파일로 자동주입등록과 자바파일로 등록하는법 비교해보면 아래와 같다.
18. 어노테이션을 이용한 빈 설정
어차피 만들어질 빈클래스를 xml이나 자바파일에 설정하지말고, 해당 파일(TestBean1)에서 어노테이션으로 간편하게 설정해보자.
우선 아래와 같이 xml파일에 context 네임스페이스를 추가 해줘야 한다.
1) @Required
반드시 주입해야 할 프로퍼티가 있다면 @Required 를 붙여준다. 그러나 스프링 5.1 부터는 @Required를 붙여도 아무런 일이 일어나지 않는다. 반드시 주입해야 할 프로퍼티는 생성자를 통해 주입받는 것을 사용해야 한다.
2) @Autowired
객체만 오토와이어가 가능하다. TestBean1.java파일에 @Autowired를 붙여서 직접 주입 해보자! 이때 같은 '타입'에 주입을 하는 것이기 때문에 그 타입이 정해지지 않았다면 오류가 발생한다.
@Autowired 넣을때는 반드시! 빈을 정의(beans.xml, BeanConfigClass.java 에 작성)해 줘야한다. 그래야 그 작성된 빈을 가져와서 주입할 수 있으니까.
@Autowired는 세터메소드에 붙여도 되고 , 변수에 붙여도 되고, 생성자에 주입 해도 된다.
3) @Qualifier
같은 타입의 빈이 여러개 있을 경우에, 타입을 가지고 주입하면 오류가 발생했었다. 그럴때는 이름을 통해(byName) 주입을 했었는데, @Autowired로 주입할 때도 같은 타입의 빈이 여러개 있으면 이름을 지정해서 주입을 하는 방법을 사용한다.
@Qualifier("빈이름") 으로 해당 빈을 찾아서 주입한다.
4) 생성자 주입
19 . JSR-250 어노테이션
먼저, Maven Repository에서 Javax Annotation API검색해서 아래와 같은 라이브러리를 pom.xml에 추가해줘야 한다.
JSR-250어노테이션은 이름을 통한 주입을 좀 더 쉽게 하기위해 사용하는 것이다.많은 어노테이션이 있지만, 스프링에서는 @postConstructor, @preDestroy, @Resource 정도 사용을 한다.
1) @postConstructor, @preDestroy
init-method 와 destroy-method 역할을 하는 것이 @postConstruct 와 @preDestroy이다.
BeanConfigClass.java 파일에 아래와 같이 설정했던 것을,
TestBean1.java파일에 직접 설정해 주도록 하자.
2) @Resource
@Autowired 와 @Qualifier("빈이름") 을 설정해주면 빈의 이름을 통해서 주입을 할 수가 있었다. 그 두개를 합쳐놓은게 @Resource이다. 이번엔 빈이름이 아닌 , 변수의 이름과 동일한 이름을 가져와 주입이 된다.
출처 : [인프런]윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정
'IT 강의 정리 > 윤재성의 스프링 입문' 카테고리의 다른 글
[섹션6][AOP] 23강~25강 AOP/ execution명시자/ @AspectJ어노테이션 (0) | 2022.10.12 |
---|---|
[섹션5][Component] 20강~22강 Component/Component Bean 기본설정/ Component 자동 주입 (0) | 2022.10.12 |
[섹션4][Annotation] 15강 Java코드를 활용한 Bean등록 (0) | 2022.10.11 |
[섹션3][DI] 14강 자동 주입 (0) | 2022.10.11 |
[섹션3][DI] 13강 컬렉션 주입 (0) | 2022.10.10 |