Spring là một java framework nguồn mở dùng ở tầng "bussiness layer" trong kiến trúc sau:
Với IDE MyEclipse:
- Hãy tạo một project trống rỗng với tên DemoSpring
- Ở cửa sổ Package Explorer, right click vào "DemoString" -> MyEclipse -> Add Spring Capabilities, chọn Finish ở cửa sổ "Add Spring Capabilities"



------- DemoSpring.java --------------
import java.util.Scanner;------- IActionClass.java --------------
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
/**
* @author Hung.Trinh
*/
public class DemoSpring {
private static String CONFIG_FILE_LOCATION = "applicationContext.xml";
private static volatile BeanFactory beanFactory = null;
/**
* Copyright by tqhung at Apr 24, 2009 - 3:09:09 PM
* @param args
*/
public static void main(String[] args) {
System.out.println("Hello to Demo Using Spring with MyEclipse.");
Scanner sn = new Scanner(System.in);
String beanname = "";
getBeanFactory();
do {
try {
beanname = sn.next();
if (beanname.compareToIgnoreCase("exit") == 0) {
break;
}
IActionClass aclass = (IActionClass) beanFactory.getBean(beanname);
System.out.println(aclass.showMessage());
} catch (BeansException be) {
System.out.println("No bean found.");
} catch (Exception e) {
System.out.println(e.getMessage());
}
} while (true);
System.out.println("completed");
}
public static BeanFactory getBeanFactory() {
if (beanFactory == null) {
final ClassPathResource resource = new ClassPathResource(CONFIG_FILE_LOCATION);
beanFactory = new XmlBeanFactory(resource);
}
return beanFactory;
}
}
/**------- ActionClass1.java --------------
* @author Hung.Trinh
*/
public interface IActionClass {
String showMessage();
}
/**------- ActionClass2.java --------------
* @author Hung.Trinh
*/
public class ActionClass1 implements IActionClass{
public String showMessage(){
return "In action 1 of class" + ActionClass1.class.toString();
}
}
/**- Công đoạn kế tiếp là ta định nghĩa các bean cho Spring. Mở file applicationContext.xml:
* @author Hung.Trinh
*/
public class ActionClass2 implements IActionClass{
public String showMessage(){
return "In action 2 of class" + ActionClass2.class.toString();
}
}
-------- applicationContext.xml - Default ----------
[?xml version="1.0" encoding="UTF-8"?]Có 2 cách định nghĩa bean: định nghĩa bằng dòng lệnh và định nghĩa bằng giao diện. Định nghĩa bằng dòng lệnh theo cấu sẽ đơn giản hơn với người lập trình chuyên sâu. Ở đây coi như ta chưa biết gì, ta dùng giao diện vậy :D. Mở cửa sổ Spring Explorer (Window -> Show View -> Other.. -> Spring Explorer), right click lên "bean" chọn "New Bean"
[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"]
[/beans]

Nên nhớ là sau mỗi lần tạo bean bạn đều phải thực hiện save file applicationContext.xml. Kết quả sau 2 lần tạo bean, nội dung file applicationContext.xml sẽ là:
--------- applicationContext.xml - Configured ----------
[?xml version="1.0" encoding="UTF-8"?]nhưng thực tế cần thì ít hơn:
[ơ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 name="action1" class="ActionClass1" abstract="false"
lazy-init="default" autowire="default" dependency-check="default"]
[/bean]
[bean name="action2" class="ActionClass2" abstract="false"
lazy-init="default" autowire="default" dependency-check="default"]
[/bean]
[/beans]
[?xml version="1.0" encoding="UTF-8"?]save lại 1 lần nữa cho chắc ăn :D,
[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 name="action1" class="ActionClass1" /]
[bean name="action2" class="ActionClass2" /]
[/beans]
Tới đây bạn có thể test kết quả vừa làm. Run DemoSpring java application, ở console, nhập chuỗi "action1" -> enter, "action2" -> enter sẽ thấy kết quả:
input : action1 --> output: In action 1 of classclass ActionClass1
input : action2 --> output: In action 2 of classclass ActionClass2
input : exit --> output: completed
