일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- HTML Templating
- jsp
- nth-child()
- 웹개발
- 속성 선택자
- 보충필요
- 김성박
- spring
- 부정 선택자
- 즐거운 자바
- 즐거운자바
- ES6
- 자바
- optgroup
- 부스트코스
- 가상클래스 선택자
- 서블릿
- datalist
- vmin
- nth-of-type()
- 가상요소 선택자
- 복합 선택자
- JavaScript
- 소스트리
- EDWITH
- 다시보자
- 깃헙
- vmax
- 상속
- 다시볼 것
Archives
- Today
- Total
기억의 DataBase
Java Config를 통한 IoC/DI 본문
xml을 활용해서 객체를 관리하던 것을
자바 config 파일(class 파일)과 Annotation(@)을 통해서 관리
※Annotation(@)
JDK 5부터 사용 가능하며, Object에 특별한 의미를 부여하여,
컴파일이나 런타임시에 그 의미에 맞게 해석되도록 함
class 파일 위에 config 파일(설정 파일)임을 알려주는 @Configuration 어노테이션을 작성
Bean을 등록하는 방법은 메소드를 만드는 방식으로 하여, xml 사용에 비해 친숙
AnnotationConfigApplicationContext는 @Bean이 붙어있는 메소드를 자동으로 실행하여
Return되는 객체들을 싱글톤으로 관리함
new AnnotationConfigApplicationContext(Applicatio.class)는 Bean을 활용하여 객체를 만드는 공장
(Car)ac.getBean("car")로 불러오는 Bean을 지정할 수 도 있으나
Car.class와 같이 클래스 타입으로 불러오면 2가지 장점이 있으므로 지향
-
메소드명 오타 신경쓸 필요가 없음
-
형변환을 할 필요가 없음
ApplicationContext는 파라미터가 없는 @Bean 생성메소드를 먼저 다 생성하고 객체들을 관리(IoC)
이후 파라미터에, 생성된 객체들과 같은 타입이 있는 객체가 있는 경우 파라미터로 전달해서 객체를 생성(DI)
@ComponentScan을 통해서 지정한 패키지 내의 @이 붙은 것들을 Memory에 올리고 DI를 함
@ComponentScan을 통해서 관리될 수있도록, class위에 @Component를 적어줌
(@Component, @Controller, @Service, @Repository 등이 가능)
※그러면 다 Component를 적어주면 되지 왜 @Bean을 사용하는가?
JDBC나 외부 라이브러리의 경우 Class안에 어노테이션을 줄 수 없기 때문에 @Bean으로 관리
Engine이라는 Type의 @Component가 있는 경우, Container가 자동으로 객체로 생성하고
@Autowired가 있는 객체(v8)에 주입하여 주기 때문에 별도의 setter가 필요하지 않음
'Spring' 카테고리의 다른 글
Spring MVC (0) | 2019.03.25 |
---|---|
Spring JDBC (0) | 2019.03.22 |
xml을 통한 IoC/DI (0) | 2019.03.21 |
IoC와 DI (0) | 2019.03.21 |
Spring Framework (0) | 2019.03.21 |
Comments