1. 程式人生 > >轉載:自學筆記: 用 MyEclipse 開發的最簡單的 Spring 例子

轉載:自學筆記: 用 MyEclipse 開發的最簡單的 Spring 例子

原文:http://www.blogjava.net/beansoft/archive/2006/12/28/90496.html

昨天沒事看了看 Spring, 後來就用 MyEclipse 做了個最簡單的例子.

從原理上說, Spring 的核心就是用 JavaBean 的屬性機制和 Java 的反射機制, 來間接的呼叫 Constructor, 設定 getter 和 setter, 生成和管理 Bean 物件, 並基於 XML 配置. 相當於一個完善的可配置的 JavaBean 物件池. 其實這樣類似的機制在 Servlet 容器和 EJB 容器裡早已實現, 只不過他們是把實現類固定起來到廠商自己的實現, 對於使用者來說, 還是基於介面開發, 例如 JSP/Servlet API 裡面都是空空如也的介面. Spring 也鼓勵這樣的將不同的專案領域分割開來, 互相之間只通過介面互相呼叫. 呵呵, 這些是個人粗略的理解. 至於 Spring 自己的 MVC.... 就沒那麼多感覺了, 純粹覺得是跟風之作. 就像新版本的 Acdsee 強要加入N多的圖形編輯功能, 讓軟體大了很多, 但是功能卻很雞肋. 書籍有本 Spring Live 中文版, 淺顯易懂.

啟動 MyEclipse, 新增 Spring 能力(版本1.2.8), 編輯配置檔案的時候用 Spring View. 最後生成的檔案:

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="userBean" name="userBean" class="springtest.UserBean"
abstract="false" singleton="true" lazy-init="default"
autowire="default" dependency-check="default" >
<property name="name">
<value>bea</value>
</property>
</bean>
</beans>


寫的 Bean:

package springtest;

public class UserBean {
private String name;
private int age;

public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}


測試執行它:

package test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import springtest.UserBean;

public class TestUserBean {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
UserBean bean = (UserBean) ctx.getBean("userBean");
System.out.println(bean.getName());
}
}


Ok, got it, 最簡單的 Spring 例子, 還沒有基於介面開發的, 就是為了比較它和普通的 Bean 模式有何差異.