熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Spring櫃架基礎總結

2013-11-23 20:33:11  來源: Java開源技術 
    簡介這是Spring櫃架基礎總結的詳細頁面介紹了和javascriptJavaScript Spring櫃架基礎總結有關的知識技巧經驗和一些javascript源碼等
    定義
    Spring是一個開源的控制反轉(IOC)和面向反切(AOP)的容器框架主要用於簡化企業開發可以適用於任何java應用程序使用框架的主要優勢在於其分層架構分層架構允許選擇使用哪一個組件同時為 JEE 應用程序開發提供集成的框架
    優點
    降低組件之間的耦合度實現軟件各層之間的解耦
    可以使用容器提供眾多的服務(事務管理服務消息服務)
    容器提供單例模式支持開發人員不再需要自己編寫實現代碼
    容器提供了AOP技術利用它很容易實現如權限攔截運行期監控等功能
    容器提供眾多輔作類使用這些類能夠加快應用的開發
    Spring對於主流的應用框架提供了集成支持便於應用開發
    模塊組成
    核心容器提供Spring框架的基本功能BeanFactory是其主要組件它是工廠模式的實現BeanFactory使用控制反轉模式將應用程序的配置和依賴性規范與實
    際的應用程序代碼分開
    Spring上下文是一個配置文件向Spring框架提供上下文信息
    Spring AOP:直接將面向方面的編程功能集成到Spring框架中為基於Spring的應用程序中的對象提供了事務管理服務
    Spring DAO提供了異常層次結構可用該結構來管理異常處理和不同數據庫供應商給定的錯誤信息簡化了錯誤處理且大大降低了需要編寫的異常代碼數量
    Spring ORM提供ORM的對象關系工具遵從Spring的通用事務和DAO異常層次結構
    Spring Web建立在應用程序上下文模塊之上為基於Web的應用程序提供了上下文簡化了處理多部分請求以及將請求參數綁定到域對象的工作


    Spring MVC是一個全功能的構建Web應用程序的MVC實現Spring模塊構建在核心容器之上核心容器定義了創建配置和管理bean的方式每個模塊都可以單獨存在也可以與其他模塊聯合實現
    不經意找到一個很不錯的例子來說明Spring框架的作用
    首先寫下兩個Bean類
    ExampleBean類
    public class ExampleBean {
    private String psnName=null;
    private RefBean refbean=null;
    private String addinfo=null;
    public RefBean getRefbean() {
    return refbean;
    }
    public String getAddinfo() {
    return getRefbean()getAddress()+getRefbean()getZipcode();
    }
    public String getPsnName() {
    return psnName;
    }
    public void setPsnName(String psnName) {
    thispsnName = psnName;
    }
    public void setRefbean(RefBean refbean) {
    thisrefbean = refbean;
    }
    public void setAddinfo(String addinfo) {
    thisaddinfo = addinfo;
    }
    }
    RefBean類
    public class RefBean {
    private String zipcode=null;
    private String address=null;
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    thisaddress = address;
    }
    public String getZipcode() {
    return zipcode;
    }
    public void setZipcode(String zipcode) {
    thiszipcode = zipcode;
    }
    }
    其xml配置文件 Beanxml:
    <?xml version=″ encoding=UTF″?>
    <!DOCTYPE beans PUBLIC //SPRING//DTD BEAN//EN
    beansdtd>
    <beans>
    <bean id=exampleBean class=testExampleBean>
    <property name=psnName><value>xkf</value></property>
    <property name=refbean>
    <ref bean=refBean/>
    </property>
    </bean>
    <bean id=refBean class=testRefBean>
    <property name=address><value>BeiJing</value></property>
    <property name=zipcode><value></value></property>
    </bean>
    </beans>
    測試類Test:
    public class Test {
    public static void main(String[] args){
    try{
    Resource input = new ClassPathResource(test/Beanxml);
    Systemoutprintln(resource is:+input);
    BeanFactory factory = new XmlBeanFactory(input);
    ExampleBean eb =
    (ExampleBean)factorygetBean(exampleBean);
    Systemoutprintln(ebgetPsnName());
    Systemoutprintln(ebgetAddinfo());
    }
    catch(Exception e){
    eprintStackTrace();
    }
    }
    這樣通過BeanFactory的getBean方法以及xml配置文件避免了在test類中直接實例化ExampleBean消除了應用程序(Test)與服務(ExampleBean)之間的耦合實現了IOC(控制反轉)或者說依賴的注射(Dependency Injection)


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28651.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.