Сохранение данных из XML в список с помощью Spring
У меня есть класс MusicPlayer, у него есть список Music который сохраняем в себе те песни, которые выбрал пользователь(это просто тест с помощью System.out.println()), допустим пользователь выбрал песни(Есть классы которые реализуют интерфейс Music, эти классы обычные жанры: ClassicalMusic, RockMusic, RapMusic) и они передались в xml и начали воспроизводить эти песни с помощью playMusic(), как мне это сделать с помощью xml? Вот код самого MusicPlayer():
package org.example;
import java.util.ArrayList;
import java.util.List;
public class MusicPlayer {
private List<Music> musics = new ArrayList<>(); // жанр песни
private String name; // название песни
private int value; // громкость песни
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
//IoC
public MusicPlayer(Music music) {
musics.add(music);
}
public MusicPlayer() {}
public void setMusic(Music music) {
musics.add(music);
}
public void playMusic() {
for (int i = 0; i < musics.size(); i++) {
System.out.println("Playing: " + musics.get(i).getSong());
}
}
}
Вот сами жанры песни:
package org.example;
public class RockMusic implements Music{
@Override
public String getSong() {
return "Rock music";
}
}
package org.example;
public class ClassicalMusic implements Music {
@Override
public String getSong() {
return "Classical music";
}
}
package org.example;
public class Rap implements Music{
@Override
public String getSong() {
return "Rap music";
}
}
Допустим пользователь выбрал все три песни, как мне сохранить эти данные через XML в list а потом через main воспроизвести их? Вот код main:
package org.example;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpring {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("test.xml");
MusicPlayer musicPlayer = context.getBean("musicPlayer", MusicPlayer.class);
musicPlayer.playMusic();
context.close();
}
}
Вот сам 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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="musicBean" class="org.example.Rap"></bean>
<bean id="musicBeanTwo" class="org.example.ClassicalMusic"></bean>
<bean id="musicBeanThree" class="org.example.RockMusic"></bean>
<bean id="musicPlayer"
class="org.example.MusicPlayer">
<util:list id="listMusic" value-type="org.example.MusicPlayer">
<ref been="musicBean"/>
<ref been="musicBeanTwo"/>
<ref been="musicBeanThree"/>
</util:list>
</bean>
</beans>