영화와 감독 정보를 Spring Bean configuration File(*.xml)에서 받아오는 실습이다.
package di.movie.vo;
public class MovieVO {
private String movieID;
private String title;
private String genre;
private double runningTime;
private DirectorVO director;
public MovieVO(){}
public MovieVO(String movieID, String title) {
super();
this.movieID = movieID;
this.title = title;
}
public MovieVO(String movieID, String title, String genre,double runningTime) {
super();
this.movieID = movieID;
this.title = title;
this.genre = genre;
this.runningTime=runningTime;
}
public MovieVO(String movieID, String title, String genre,
double runningTime, DirectorVO director) {
super();
this.movieID = movieID;
this.title = title;
this.genre = genre;
this.runningTime = runningTime;
this.director = director;
}
public String getMovieID() {
return movieID;
}
public void setMovieID(String movieID) {
this.movieID = movieID;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getGenre() {
return genre;
}
public void setGenre(String genre) {
this.genre = genre;
}
public double getRunningTime() {
return runningTime;
}
public void setRunningTime(double runningTime) {
this.runningTime = runningTime;
}
@Override
public String toString() {
return "MovieVO [movieID=" + movieID + ", title=" + title + ", genre="
+ genre + ", runningTime=" + runningTime + ", director="
+ director + "]";
}
}
package di.movie.vo;
public class MovieVO {
private String movieID;
private String title;
private String genre;
private double runningTime;
private DirectorVO director;
public MovieVO(){}
public MovieVO(String movieID, String title) {
super();
this.movieID = movieID;
this.title = title;
}
public MovieVO(String movieID, String title, String genre,double runningTime) {
super();
this.movieID = movieID;
this.title = title;
this.genre = genre;
this.runningTime=runningTime;
}
public MovieVO(String movieID, String title, String genre,
double runningTime, DirectorVO director) {
super();
this.movieID = movieID;
this.title = title;
this.genre = genre;
this.runningTime = runningTime;
this.director = director;
}
public String getMovieID() {
return movieID;
}
public void setMovieID(String movieID) {
this.movieID = movieID;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getGenre() {
return genre;
}
public void setGenre(String genre) {
this.genre = genre;
}
public double getRunningTime() {
return runningTime;
}
public void setRunningTime(double runningTime) {
this.runningTime = runningTime;
}
@Override
public String toString() {
return "MovieVO [movieID=" + movieID + ", title=" + title + ", genre="
+ genre + ", runningTime=" + runningTime + ", director="
+ director + "]";
}
}
<?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-2.5.xsd">
<bean id="movieVO1" class="di.movie.vo.MovieVO" />
<bean id="movieVO2" class="di.movie.vo.MovieVO">
<constructor-arg value="Mv0001"/>
<constructor-arg value="친구"/>
</bean>
<bean id="movieVO3" class="di.movie.vo.MovieVO">
<constructor-arg value="Mv0002" />
<constructor-arg value="2010 남아공 월드컵 한국vs브라질 결승전" />
<constructor-arg value="Soccer Sport" />
<constructor-arg value="90.2" type="double" />
</bean>
<bean id="directorVO" class="di.movie.vo.DirectorVO">
<constructor-arg value="director001"></constructor-arg>
<constructor-arg value="박찬욱"></constructor-arg>
<constructor-arg value="43" type="int"></constructor-arg>
</bean>
<bean id="movieVO4" class="di.movie.vo.MovieVO">
<constructor-arg value="Mv0003"></constructor-arg>
<constructor-arg value="박쥐"></constructor-arg>
<constructor-arg value="미스테리/스릴러"></constructor-arg>
<constructor-arg value="125" type="double"></constructor-arg>
<constructor-arg>
<ref bean="directorVO"/>
</constructor-arg>
</bean>
<bean id="movieVO5" class="di.movie.vo.MovieVO">
<constructor-arg value="Mv0004"></constructor-arg>
<constructor-arg value="영구와 땡칠이"></constructor-arg>
<constructor-arg value="아동/액션"></constructor-arg>
<constructor-arg value="50" type="double"></constructor-arg>
<constructor-arg>
<bean class="di.movie.vo.DirectorVO">
<constructor-arg value="director2"></constructor-arg>
<constructor-arg value="심형래"></constructor-arg>
<constructor-arg value="58"></constructor-arg>
</bean>
</constructor-arg>
</bean>
</beans>
package di.movie.main;
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;
import di.movie.vo.MovieVO;
public class TestMovie {
public static void main(String[] args) throws Exception {
Resource resource=new ClassPathResource("movieContext.xml");
BeanFactory factory=new XmlBeanFactory(resource);
MovieVO mvo1=(MovieVO)factory.getBean("movieVO1");
System.out.println(mvo1.getClass().getName());
System.out.println(mvo1);
//MovieVO [genre=null, movieID=null, runningTime=0.0, title=null]
System.out.println("------mvo2-----");
MovieVO mvo2=(MovieVO)factory.getBean("movieVO2");
System.out.println(mvo2);
System.out.println("------mvo3-----");
MovieVO mvo3=(MovieVO)factory.getBean("movieVO3");
System.out.println(mvo3);
System.out.println("------mvo4-----");
MovieVO mvo4=(MovieVO)factory.getBean("movieVO4");
System.out.println(mvo4);
System.out.println("------mvo5-----");
MovieVO mvo5=(MovieVO)factory.getBean("movieVO5");
System.out.println(mvo5);
}
}