1. 예제 클래스 만들기
1) 인터페이스 MessageBean.java
package sample3;
public interface MessageBean {
public void sayHello(String name);
}
package sample3;
public class MessageBeanEn implements MessageBean {
@Override
public void sayHello(String name) {
System.out.println("Hello, "+name+"!!!");
}
}
package sample3;
public class MessageBeanKr implements MessageBean {
@Override
public void sayHello(String name) {
System.out.println("안녕하세요, "+name+"님.");
}
}
package sample3;
public class HelloApp {
public static void main(String[] args) {
MessageBean beanKr = new MessageBeanEn(); // 인터페이스를 이용
// beanKr.sayHello("홍길동");
beanKr.sayHello("john");
}
}
2) beans.xml이 생성된다.
3) 하단에 Source를 누르면 xml 파일 내용 확인 가능
4) 스프링의 bean.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.xsd">
<bean id="messageBean" class="sample3.MessageBeanKr"></bean>
</beans>
3. 스프링 jar 파일 추가
1) 프로젝트에서 New-최하단 Properties 선택-Java Build Path-Libraries 탭 선택,
2) Add Library 버튼 누름-User Library 선택-New 선택
3) 라이브러리 이름 설정(ex) SpringApp_Lib
생성되면 Add External JARs 선택, 다운받은 스프링 jar 파일 추가해줌.
4) 추가 완료
4. 예제
1) 스프링의 모듈을 이용하여 HelloApp.java를 다음과 같이 만들어줄 수 있다.
package sample3;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import sample3.MessageBean;
public class HelloApp {
public static void main(String args[]) {
//Resource res = new FileSystemResource("beans.xml"); // 해당 프로젝트 안에 xml 넣는 경우
Resource res = new ClassPathResource("beans.xml"); // 해당 패키지 안에 xml 넣는 경우
BeanFactory factory = new XmlBeanFactory(res);
//MessageBean bean = factory.getBean("messageBean", MessageBean.class); 이렇게 해도 됨
MessageBean bean = (MessageBean) factory.getBean("messageBean");
bean.sayHello("john");
}
}
Resource: FileSystemResource의 상위클래스(인터페이스)
FileSystemResource: 해당 설정파일(beans.xml)의 정보를 반환해주는 클래스
해당 설정파일의 정보를 알았으면 생성하라는 요청을 해야함.
XmlBeanFactory: 해당 설정파일 정보의 Bean 객체를 생성하는 클래스
BeanFactory: XmlBeanFactory의 상위클래스(인터페이스)
스프링을 사용하는 목적
원래는 MessageBeanEn beanKr = new MessageBeanEn(); 이런 식으로 객체를 생성해준 뒤, beanKr.sayHello("john"); 형식으로 사용을 했다.
(인터페이스를 구현하는 경우 다형성을 활용하여 MessageBean beanKr = new MessageBeanEn(); 이런 식으로 각기 다른 클래스에서 동일한 클래스명으로 써줄 수 있다.)
이 경우 각 클래스마다 이름이 변경이 있을 때 연관된 클래스마다 객체 생성시 이름도 모두 변경해줘야 하는 문제가 있다.
하지만 스프링에서 xml을 이용해 객체 생성을 맡기면 bean.sayHello("john"); 형식으로 스프링 객체에서 해당 메소드를 사용할 수 있으므로, 연관 클래스를 모조리 바꿔줄 필요없이, 스프링에서만 바꿔주면 된다.
DI 의존적 주입. 객체를 필요로 하는 곳에 주입.DI 의존적 주입
' Spring Framework' 카테고리의 다른 글
Dependency Injection (의존성 주입) (0) | 2016.03.24 |
---|---|
STS에서 메이븐 방식으로 스프링 프로젝트 생성 (0) | 2016.03.24 |
Spring Tool Suite (0) | 2016.03.24 |
이클립스에 Spring 플러그인 설치 (0) | 2016.03.23 |
Spring Framework 관하여 (0) | 2016.03.23 |