본문 바로가기

기존카테고리/Spring_basic1

XML 파일을 이용한 의존관계 설정


Player.java


package com.test.diEx06;


import java.util.ArrayList;


public class Player {

private String name;

private int age;

private ArrayList<String> position;

private double height;

private double weight;

public Player() {}

public Player(String name, int age, ArrayList<String> position){

this.name = name;

this.age = age;

this.position = position;

}


public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}


public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}


public ArrayList<String> getPosition() {

return position;

}

public void setPosition(ArrayList<String> position) {

this.position = position;

}


public double getHeight() {

return height;

}

public void setHeight(double height) {

this.height = height;

}


public double getWeight() {

return weight;

}

public void setWeight(double weight) {

this.weight = weight;

}

}



PlayerInfo.java


package com.test.diEx06;


public class PlayerInfo {

public Player player;

public PlayerInfo() {}

public void setPlayer(Player player){

this.player = player;

}

public Player getPlayer(){

return player;

}

}



BaseBallTeam.java


package com.test.diEx06;


public class BaseBallTeam {

String manager;

String battingCoach;

String pitchingCoach;

String hitter;

String pitcher;

public BaseBallTeam() {}

public BaseBallTeam(String manager, String battingCoach, String pitchingCoach){

this.manager = manager;

this.battingCoach = battingCoach;

this.pitchingCoach = pitchingCoach;

}


public String getManager() {

return manager;

}

public void setManager(String manager) {

this.manager = manager;

}


public String getBattingCoach() {

return battingCoach;

}

public void setBattingCoach(String battingCoach) {

this.battingCoach = battingCoach;

}


public String getPitchingCoach() {

return pitchingCoach;

}

public void setPitchingCoach(String pitchingCoach) {

this.pitchingCoach = pitchingCoach;

}


public String getHitter() {

return hitter;

}

public void setHitter(String hitter) {

this.hitter = hitter;

}


public String getPitcher() {

return pitcher;

}

public void setPitcher(String pitcher) {

this.pitcher = pitcher;

}

}



MainBaseBall.java


package com.test.diEx06;


import org.springframework.context.support.AbstractApplicationContext;

import org.springframework.context.support.GenericXmlApplicationContext;


public class MainBaseBall {


public static void main(String[] args) {

String ref1 = "classpath:baseBall1.xml";

String ref2 = "classpath:baseBall2.xml";

AbstractApplicationContext ctx = new GenericXmlApplicationContext(ref1, ref2);

Player player1 = ctx.getBean("player1",Player.class);

System.out.println(player1.getName()); 

System.out.println(player1.getPosition());

PlayerInfo playerInfo = ctx.getBean("playerInfo1",PlayerInfo.class);

Player player2 = playerInfo.getPlayer();

System.out.println(player2.getName());

System.out.println(player2.getPosition());

if(player1.equals(player2)){

System.out.println("같은 레퍼런스");

}

Player player3 = ctx.getBean("player3",Player.class);

System.out.println("이름: "+player3.getName());

System.out.println("나이: "+player3.getAge());

System.out.println("포지션: "+player3.getPosition());

System.out.println("키: "+player3.getHeight());

System.out.println("몸무게: "+player3.getWeight());

BaseBallTeam baseBallTeam = ctx.getBean("baseBallTeam",BaseBallTeam.class);

System.out.println(baseBallTeam.getManager());

System.out.println(baseBallTeam.getBattingCoach());

System.out.println(baseBallTeam.getPitchingCoach());

System.out.println(baseBallTeam.getHitter());

System.out.println(baseBallTeam.getPitcher());

}

}



baseBall1.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="player1" class="com.test.diEx06.Player">
<constructor-arg value="박병호" />
<constructor-arg>
<value>28</value>
</constructor-arg>
<constructor-arg>
<list>
<value>4번</value>
<value>1루스</value>
</list>
</constructor-arg>
<property name="height">
<value>188</value>
</property>
<property name="weight" value="80" />
</bean>
<bean id="playerInfo1" class="com.test.diEx06.PlayerInfo" >
<property name="player" >
<ref bean="player1" />
</property>
</bean>

</beans>




baseBall2.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"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="player3" class="com.test.diEx06.Player">
<!-- 
<property name="name" value="이승엽" />
<property name="age" value="42" />
<property name="position">
<list>
<value>3번타자</value>
<value>1루수</value>
</list>
</property>
-->
<constructor-arg value="이만수" />
<constructor-arg value="55" />
<constructor-arg>
<list>
<value>4번타자</value>
<value>포수</value>
</list>
</constructor-arg>
 
<property name="height" value="180" />
<property name="weight" value="70" />
</bean>
<bean id="baseBallTeam" class="com.test.diEx06.BaseBallTeam"
c:manager="류중일" c:battingCoach="이만수" c:pitchingCoach="선동열"
p:hitter="강정호">
<property name="pitcher" value="류현진" />
</bean>
</beans>