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

分享

Spring入門經(jīng)典一

 隱形的翅膀 2008-07-21

Spring

基本概念:

1.什么是spring?有什么用?

2.Spring和其他類似產(chǎn)品的區(qū)別?

3.Spring的特點(diǎn)(優(yōu)缺點(diǎn))?

4.Spring的內(nèi)容?

 

什么是spring?有什么用?

Spring就是輕量級(jí)的業(yè)務(wù)層框架,什么是輕量級(jí):第一,spring的文件大小只有1mb,第二,資源消耗,占用內(nèi)存與其他的產(chǎn)品相比較小(:EJB)

作用:完成業(yè)務(wù)層的開發(fā)

 

Spring和其他類似產(chǎn)品的區(qū)別?

輕量級(jí),EJB也是完成業(yè)務(wù)層的開發(fā),但是他是重量級(jí)的框架,EJB的重點(diǎn)在企業(yè)應(yīng)用,那么有些程序沒有必要使用重量級(jí)的工具來開發(fā)輕量級(jí)的應(yīng)用,這樣成本過大,spring就是滿足完成輕量級(jí)應(yīng)用的業(yè)務(wù)層框架

 

Spring的特點(diǎn)(優(yōu)缺點(diǎn))?

優(yōu)點(diǎn):

1.依賴注入(控制反轉(zhuǎn)):什么是依賴注入?在一個(gè)對象需要使用另一個(gè)對象的時(shí)候,只聲明另一個(gè)對象的接口,它的實(shí)例在運(yùn)行時(shí)獲得它,作用:就是解決了組件中的耦合,也就是不依賴于固定的對象

2.面向方面編程:什么是面向方面編程?AOP:在預(yù)編譯或運(yùn)行時(shí)為程序加入新的功能(:加入安全,同步,事務(wù)等),編程方式采用的是注釋,不用在業(yè)務(wù)代碼中寫這些與業(yè)務(wù)無關(guān)的代碼了,作用:實(shí)現(xiàn)業(yè)務(wù)與其他代碼分離,解耦合,他完善依賴注入(DI)

3.簡化javaee編程結(jié)構(gòu):web的支持(MVC),DAO的支持,ORM的支持

4.類似一站式服務(wù):web,業(yè)務(wù)的功能都有,用戶也可以選擇性的使用

 

Spring的內(nèi)容?

1.核心模塊:BeanFactory(用來管理bean組件的,相當(dāng)于bean的容器,通過獨(dú)beanxml文件,可以從中知道beanbean的依賴關(guān)系和bean的實(shí)現(xiàn))

2.AOP:面向方面編程(聲明式中間件服務(wù)管理)

3.ORM

4.DAO

5.Web

6.Context:ApplicationContext:作用:增強(qiáng)功能,:程序國際化等

 

第一個(gè)Spring:

1.下載spring框架

2.解讀spring框架的目錄結(jié)構(gòu)

3.實(shí)例1(不使用工具)

4.實(shí)例2(eclipse)

5.雜項(xiàng)問題

 

下載spring框架:

http://www.

本地: E:\個(gè)人數(shù)據(jù)庫\基本結(jié)構(gòu)\專業(yè)\spring\參考資料\Spring-framework.zip

 

解讀spring框架的目錄結(jié)構(gòu):

解壓下載的spring框架:

/dist:核心包,spring.jar(工廠文件集合),還有spring.jar的子包,spring-beans.dtd:定義beans.xml的屬性和beans.xml的頭部

/docs:spring api文檔

/lib:spring的編譯和運(yùn)行所依賴的第三方類庫

 

實(shí)例1(不使用工具):

程序目標(biāo):開發(fā)一個(gè)spring,功能是顯示hello 方法參數(shù) my name is bean屬性value

1.設(shè)置classpath:添加spring.jar and \lib\jakarta-commons\commons-logging.jar

2.創(chuàng)建一個(gè)應(yīng)用目錄:yuchen

3.創(chuàng)建src目錄

4.開發(fā)一個(gè)接口和一個(gè)類

5.寫配置文件beans.xml:定義這個(gè)類,文件的頭部可以去spring-beans.dtd中找到

6.寫客戶端測試類

7.編譯運(yùn)行

 

接口:

package first;

 

public interface Hello{

     public String sayhello(String user);

     }

 

Bean:

package first;

 

public class HelloImp implements Hello{

     private String name;

     public String sayhello(String user){

         return "hello, "+user+"my name is: "+this.name;

         }

     public void setName(String name){

         this.name=name;

         }

     }

 

Xml:

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

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

         "http://www./dtd/spring-beans.dtd">

 

<beans>

     <bean id="hello" class="first.HelloImp">

         <property name="name">

              <value>spring</value>

         </property>

     </bean>

</beans>

 

Test:

import org.springframework.core.io.ClassPathResource;

import org.springframework.beans.factory.xml.XmlBeanFactory;

import first.*;

 

public class TestHello{

    

     public static void main(String [] args){

              //1.讀取配置文件,beans.xml:注意beans.xml的寫法:如果放到根目錄

              //,那么直接寫beans.xml,如果放到子目錄下,子目錄名/beans.xml

              //2.實(shí)例化bean工廠對象,載入xml資源:工廠負(fù)責(zé)管理bean組件的

              //目前是管理當(dāng)前xml資源中的bean

              //3.通過bean工廠對象得到你要找的bean實(shí)例

              ClassPathResource resource=new ClassPathResource("beans.xml");

              XmlBeanFactory factory=new XmlBeanFactory(resource);

              Hello hello=(Hello)factory.getBean("hello");

              String rst=hello.sayhello("yuchen");

              System.out.println(rst);

         }

     }

 

D:\yuchen> Javac –d d:\yuchen d:\yuchen\src\*.java

D:\yuchen> Javac –d d:\yuchen d:\yuchen\*.java

D:\yuchen> java TestHello

 

實(shí)例2(eclipse):

程序目標(biāo):測試spring的特性:依賴注入/控制反轉(zhuǎn),調(diào)用A類的業(yè)務(wù)方法,這個(gè)方法需要B類方法提供的數(shù)據(jù),A類中,沒有B實(shí)例,只有B的接口類型,只依賴它的接口,在運(yùn)行時(shí)獲得B的實(shí)例,從而得到其數(shù)據(jù)

1.新建java工程

2.配置jar:兩個(gè)包

3.開發(fā)兩個(gè)接口,兩個(gè)類

4.beans.xml

5.測試類測試

Model接口:

package yuchen.beanfactory;

 

public interface Model {

     public String supportData();

}

 

View接口:

package yuchen.beanfactory;

 

public interface View {

     public void render();

}

 

Model bean:

package yuchen.beanfactory;

 

public class AcountModel implements Model {

 

     private String ownerName;

     private double balance;

     public String supportData() {

         // TODO Auto-generated method stub

         return "Acdount : \n"+"ownerName :"+this.ownerName+

         "\n balance :"+this.balance;

     }

     public void setBalance(double balance) {

         this.balance = balance;

     }

     public void setOwnerName(String ownerName) {

         this.ownerName = ownerName;

     }

    

}

 

View bean:

package yuchen.beanfactory;

 

public class CommandLineView implements View {

 

     private Model model;

     public void render() {

         // TODO Auto-generated method stub

         String rst=model.supportData();

         System.out.println(rst);

     }

     public void setModel(Model model) {

         this.model = model;

     }

    

}

 

beans.xml:

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

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www./dtd/spring-beans.dtd" >

<beans>

     <bean id="model" class="yuchen.beanfactory.AcountModel">

         <property name="ownerName">

              <value>tarena</value>

         </property>

         <property name="balance">

              <value>1000.56</value>

         </property>

     </bean>

    

     <bean id="view" class="yuchen.beanfactory.CommandLineView">

         <property name="model">

              <ref bean="model"></ref>

         </property>

     </bean>

</beans>

 

test:

package yuchen.beanfactory;

 

import org.springframework.beans.factory.xml.XmlBeanFactory;

import org.springframework.core.io.ClassPathResource;

 

public class Test {

 

     /**

      * @param args

      */

     public static void main(String[] args) {

         // TODO Auto-generated method stub

         ClassPathResource resource=new ClassPathResource("yuchen/beanfactory/beans.xml");

         XmlBeanFactory factory=new XmlBeanFactory(resource);

         View view=(View) factory.getBean("view");

         view.render();

     }

 

}

 

雜項(xiàng)問題:

1.eclipse中引入xml dtd文件

Windows->preferences->web and xml -> xml catalog

Add:uri:要導(dǎo)入的dtd地址 :spring-beans.dtd

Key type:public id

Key:例如:-//spring//dtd//en

 

2.導(dǎo)入log4j

導(dǎo)入:spring/lib/log4j.jar

在根目錄下創(chuàng)建log4j.properties文件,內(nèi)容從H:\spring-framework-1.2.8\test\

log4j.properties里面拷貝

解決了運(yùn)行中顯示紅色的log信息的問題

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多