Ecco un breve tutorial per iniziare a provare Spring con una "bean-factory" in una semplice e normale applicazione "standalone".
Serve:
1) Il pacchetto dei binari di Spring Framework. Faccio riferimento alla 3.2.4 (l'ultima del ramo 3.2 che c'è al momento). Lo zip da prendere è spring-framework-3.2.4.RELEASE-dist.zip.
Dentro lo zip c'è la cartella libs, servono come minimo 2 jar:
- spring-core-3.2.4.RELEASE.jar
- spring-beans-3.2.4.RELEASE.jar
2) Il pacchetto dei binari di Apache Commons Logging. Questa è una dipendenza che serve a Spring. Faccio riferimento alla 1.1.3 (l'ultima al momento). Lo zip (c'è anche tar.gz) è commons-logging-1.1.3-bin.zip.
Del contenuto di questo zip serve solo 1 jar:
- commons-logging-1.1.3.jar
Nota: questi zip/tar.gz, possono essere scaricati/spacchettati dove si vuole, non centrano nulla, direttamente, con Eclipse o con il progetto finale.
Progetto in Eclipse:
1) È sufficiente creare un comune e classico "Java Project". Non è nemmeno necessario avere il "plugin" di Spring, dato che verranno aggiunti i jar "a mano" nel progetto.
Il progetto può avere nome e locazione qualunque.
2) Nelle proprietà del progetto, in Java Build Path (tab Libraries), usare il pulsante "Add External JARs" e aggiungere i 3 jar indicati sopra.
Questo si può fare già dal wizard mentre si crea il progetto, sia appena dopo che è stato creato. Chiaramente va fatto prima di poter compilare/eseguire!
3) Si crea una classe che ha il main(), es. ProvaSpring. Può stare in un package con nome o nel package "unnamed" ("default package" in Eclipse). Non ha importanza.
codice:
import java.awt.Rectangle;
import org.springframework.beans.factory.support.BeanDefinitionReader;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.core.io.ClassPathResource;
public class ProvaSpring {
public static void main(String[] args) {
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
BeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(new ClassPathResource("prova-beans.xml", ProvaSpring.class));
Rectangle unRettangolo = (Rectangle) factory.getBean("rettangolo");
System.out.println("rettangolo = " + unRettangolo);
}
}
4) Allo stesso livello di ProvaSpring.java creare un file prova-beans.xml. Come si vede dal codice Java, viene caricato cercando in classpath, nello stesso package della classe.
codice:
<?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="punto" class="java.awt.Point">
<constructor-arg value="30" />
<constructor-arg value="50" />
</bean>
<bean id="dimensione" class="java.awt.Dimension">
<constructor-arg value="200" />
<constructor-arg value="100" />
</bean>
<bean id="rettangolo" class="java.awt.Rectangle">
<property name="location" ref="punto" />
<property name="size" ref="dimensione" />
</bean>
</beans>
Compilare ed avviare.
L'output su console dovrebbe essere qualcosa tipo:
ago 08, 2013 10:52:22 PM org.springframework.beans.factory.xml.XmlBeanDefin itionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [/prova-beans.xml]
rettangolo = java.awt.Rectangle[x=30,y=50,width=200,height=100]
Spero sia stato utile.