小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Spring不是“春天”

 wangjava 2011-04-15

Spring不是“春天”

      spring在英文里有春天、彈簧、跳躍和泉眼的意思。但在javaSpring 也表示是一個(gè)開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性由Rod Johnson創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開發(fā)提供集成的框架。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。

     版本:現(xiàn)在spring的最高版本是3.0.0版本,在此文章中我們以2.5.6為例  

     目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性       

     功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能   

     范圍:任何Java應(yīng)用 簡(jiǎn)單來說,Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。         

     控制反轉(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過被動(dòng)的方式傳遞進(jìn)來,而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoCJNDI相反——不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。   

     面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。   

      容器——Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。   

      框架——Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。   所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持

      下載安裝spring--------spring當(dāng)前的最高把版本是3.0.0,文章以2.5.6為例,登錄http://www./站點(diǎn),點(diǎn)擊powloads連接進(jìn)入download頁面下載!

      

Spring的第一個(gè)案例hello world

添加spring配置文件    

src下新建一個(gè)applinactionContext.xml文檔如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www./schema/beans" 

           xmlns:xsi="http://www./2001/XMLSchema-instance" 

           xsi:schemaLocation="http://www./schema/beans 

                http://www./schema/beans/spring-beans-2.5.xsd"> 

</beans>

 經(jīng)過配置,一個(gè)Spring的應(yīng)用程序基本就搭建好。圖如下

     

  環(huán)境搭建好之后我們就以hello world 為例來體驗(yàn)一次sping帶來的快感

     接下在src下新建一個(gè)cn.csdn.dao包,在包中創(chuàng)建接口GrerrtingDAOdao方法GreetingDAOImpl

   接口GrerrtingDAO

     

package cn.csdn.dao;

   public interface GreetingDAO {

  public void say();

}

GreetingDAOImpl方法

  package cn.csdn.dao;

public class GreetingDAOImpl implements GreetingDAO{

private String say;

public void say() {

       System.out.println("我說的是:"+say);

}

public void setSay(String say) {

this.say = say;

}

}

接下來在src下創(chuàng)建service層及cn.csdn.service包,創(chuàng)建GreetingService接口和GreetingServiceImpl 方法

    

   GreetingService接口

   

package cn.csdn.service;

public interface GreetingService {

void say();

}

GreetingServiceImpl 方法

package cn.csdn.service;

import cn.csdn.dao.GreetingDAOImpl;

public class GreetingserviceImpl implements GreetingService {

private GreetingDAOImpl GreetingDAOImpl;

public void say() {

GreetingDAOImpl.say();

}

public void setGreetingDAOImpl(GreetingDAOImpl greetingDAOImpl) {

this.GreetingDAOImpl = greetingDAOImpl;

}

    

}

   

相應(yīng)的層創(chuàng)建完之后我們?cè)谂渲?font face="Times New Roman">spring配置文件

  

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www./schema/beans" 

           xmlns:xsi="http://www./2001/XMLSchema-instance" 

           xsi:schemaLocation="http://www./schema/beans 

                http://www./schema/beans/spring-beans-2.5.xsd"> 

  <bean id="greetingDAOImpl" class="cn.csdn.dao.GreetingDAOImpl">

   <property name="say">

    <value>hello world</value>

   </property>

  </bean>  

  <bean id="greetingserviceImpl" class="cn.csdn.service.GreetingserviceImpl">

  

  <property name="greetingDAOImpl" ref="greetingDAOImpl"></property>

  </bean>

</beans>

最后用junit4進(jìn)行測(cè)試

  

package cn.csdn.jutil;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.csdn.service.GreetingserviceImpl;

public class Springtest {

     @Test

public void test(){

ApplicationContext ac =new ClassPathXmlApplicationContext("appincationContext.xml");

  GreetingserviceImpl gss=(GreetingserviceImpl) ac.getBean("greetingserviceImpl");

  gss.say();

}

}

后臺(tái)輸出:

  我說的是:hello world

 Spring的體驗(yàn)到此結(jié)束,經(jīng)過此次體驗(yàn)知道了spring中的許多優(yōu)點(diǎn),我總結(jié)一下:

優(yōu)點(diǎn)1Spring能消除使用各種各樣格式的屬性定制文件的需要,在整個(gè)應(yīng)用和工程中,可通過一種一致的方法來進(jìn)行配置。曾經(jīng)感到迷惑,一個(gè)特定類要查找迷幻般的屬性關(guān)鍵字或系統(tǒng)屬性,為此不得不讀Javadoc乃至源編碼嗎?有了Spring,你可很簡(jiǎn)單地看到類的JavaBean屬性。倒置控制的使用(在下面討論)幫助完成這種簡(jiǎn)化。 

優(yōu)點(diǎn)2Spring能通過接口而不是類促進(jìn)好的編程習(xí)慣,減少編程代價(jià)到幾乎為零。 

     

      

   

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多