Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 순열코드
- Interface
- Java
- str to char array
- java 내부 클래스
- 상속
- 조합 재귀
- 서로소
- 알고리즘
- 재귀
- jquery 속성선택자
- 순열 재귀
- parseInt()
- 자바 순열 코드
- 자바입출력
- java Collections.sort()
- char to str
- 자바스크립트 이벤트처리
- jquery 필터선택자
- 자바스크립트 이벤트중지
- 재귀함수
- 알고리즘 그래프
- 자바
- 자바 조합 재귀
- jquery dom 계층 선택자
- inner class
- jquery 이벤트 처리
- 자바 재귀 조합
- 후위표기
- java lambda
Archives
- Today
- Total
유블로그
[Spring] DI (Dependency Injection) 본문
빈 생성범위
- singletone : 스프링 컨테이너 당 하나의인스턴스 빈만 생성. default!!
- prototype : 컨테이너에 빈을 요청할 때마다 새로운 인스턴스 생성
- request : HTTP Request 별로 새로운 인스턴스 생성
- session : HTTP Session 별로 새로운 인스턴스 생성
빈 설정 방법 3가지
- XML Document
- Annotation
- Java Code
1) XML
1- src 폴더에 패키지 com.hello.configuration 에 applicationContext.xml 만들어놓음
2- 1의 xml 파일 내용은 대략이렇다
<bean id="gbService" class="com.hello.model.service.GuestBookServiceImpl">
<property name="guestBookDao" ref="gbDao"/>
</bean>
3- 2의 bean을 사용할 java 파일에서
GuestBookService guestBookService = context.getBean("gbService", GuestBookServiceImpl.class);
이런 식으로 context 객체에서 bean id를 통해 빈에 접근한다!
xml 을 통한 빈 의존 관계설정
1- contructor 이용
<bean id="ham" class="com.ssafy.hello.di4.HamSand" />
<bean id="menu2" class="com.ssafy.hello.di4.Menu" >
<constructor-arg>
<ref bean="ham" />
</constructor-arg>
</bean>
<!-- 또는 -->
<bean id="menu2" class="com.ssafy.hello.di4.Menu" >
<constructor-arg ref="ham" />
</bean>
<!-- 또는 -->
<bean id="menu2" class="com.ssafy.hello.di4.Menu" c:sand-ref="ham" />
2- property 이용
<bean id="ham" class="com.ssafy.hello.di4.HamSand" />
<!-- 세터 인젝션(Setter Injection) : Menu menu = new Menu(); menu.setSand(ham); -->
<!-- set 메소드 쓰겠다! -->
<bean id="menu2" class="com.ssafy.hello.di4.Menu" >
<property name="sand">
<ref bean="ham" />
</property>
</bean>
<!-- 또는 -->
<bean id="men2u" class="com.ssafy.hello.di4.Menu" >
<property name="sand" ref="ham" />
</bean>
<!-- 또는 -->
<bean id="menu" class="com.ssafy.hello.di4.Menu" p:sand-ref="ham" />
2) Annotation
<context:component-scan base-package="com.hello.framework.ws04">
위처럼 servelt-context.xml 에 원하는 패키지 밑에 있는 모든 파일들에 대해 자동스캔 등록을 한다.
이렇게 Autowired 를 통해서 빈과 객체를 연결해주어 사용한다.
동일한 타입의 bean이 여러 개일 경우에는 @Qualifier 를 사용한다.
- 아래는 빈 자동등록에 사용할 수 있는 Annotation 들이다.
'Spring' 카테고리의 다른 글
[Spring] controller : 여러가지 Request mapping 방법들 (0) | 2020.11.01 |
---|---|
[Spring] Spring Web MVC (0) | 2020.11.01 |
[Spring] CORS policy : Cross-Origin Resource Sharing (0) | 2020.10.30 |
[Spring] IoC(Inversion of Control) & Container (0) | 2020.10.29 |
spring mvc 구조 프로젝트 에서 spring ajax 프로젝트로 바꾸기 (0) | 2020.10.28 |