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 |
Tags
- Java
- HTML
- 배열
- JavaScript
- OGNL
- 메소드
- 오버로딩
- AWT
- paint
- Menu
- struts2
- layout
- mybatis
- JSP
- 클래스
- 이클립스
- oracle
- 에러페이지
- 예외처리
- 어노테이션
- 메서드
- 생성자
- Spring
- 안드로이드
- Graphic
- 전화걸기
- 기본
- 국제화
- Android
- Eclips
Archives
- Today
- Total
note
Spring Di(Dipendency Injection) 본문
Spring의 핵심인 Di
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean name="writeArticleService" class="madvirus.spring.chap01.WriteArticleServiceImpl"> <constructor-arg> <ref bean="articleDao"/> </constructor-arg> </bean> <bean name="articleDao" class="madvirus.spring.chap01.MySQLArticleDao" /> </beans>
Article
package madvirus.spring.chap01; public class Article { }
ArticleDao
package madvirus.spring.chap01; public interface ArticleDao { void insert(Article article); }
Main
package madvirus.spring.chap01; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; public class Main { public static void main(String[] args) { Resource resource = new ClassPathResource("applicationContext.xml"); BeanFactory beanFactory = new XmlBeanFactory(resource); WriteArticleService articleSevice = (WriteArticleService) beanFactory .getBean("writeArticleService"); articleSevice.write(new Article()); } }
MySQLArticleDao
package madvirus.spring.chap01; public class MySQLArticleDao implements ArticleDao{ @Override public void insert(Article article) { System.out.println("MySQLArticleDao.insert()실행"); } }
WriteArticleService
package madvirus.spring.chap01; public interface WriteArticleService { void write(Article article); }
WriteArticleServiceImpl
package madvirus.spring.chap01; public class WriteArticleServiceImpl implements WriteArticleService{ private ArticleDao articleDao; public WriteArticleServiceImpl(ArticleDao articleDao){ this.articleDao = articleDao; } @Override public void write(Article article) { System.out.println("WriteArticleServiceImpl.write() 메서드 실행"); articleDao.insert(article); } }
Main.java실행 화면
WriteArticleServiceImpl.write() 메서드 실행
MySQLArticleDao.insert()실행
객체를 호출하게 되면
자동적으로 생성자, 또는 메서드를 통해 받는것
객체 상호간의 의존관계를 객체 외부에서 제어한다
두개의 의존성 있는 객체를 자바 코드로 형성해 주는것이 아니라 밖에서(SpringContainer가 담당해준다)
Main.java
(getBean은 찾는 메서드)
applicationContext.xml에서 writeArticleService를 찾는다
'JSP > Spring' 카테고리의 다른 글
Spring 프로퍼티 타입을 이용한 의존 관계 자동 설정 (0) | 2012.02.29 |
---|---|
Spring 프로퍼티 이름을 이용한 의존 관계 자동 설정 (0) | 2012.02.29 |
Spring Di 심화 학습 (0) | 2012.02.29 |
Spring 설치 & 셋팅(응용 프로그램) (0) | 2012.02.28 |
Spring 기본 (0) | 2012.02.28 |