一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Spring入門經典一

 隱形的翅膀 2008-07-21

Spring

基本概念:

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

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

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

4.Spring的內容?

 

什么是spring?有什么用?

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

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

 

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

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

 

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

優(yōu)點:

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

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

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

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

 

Spring的內容?

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

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

3.ORM

4.DAO

5.Web

6.Context:ApplicationContext:作用:增強功能,:程序國際化等

 

第一個Spring:

1.下載spring框架

2.解讀spring框架的目錄結構

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

4.實例2(eclipse)

5.雜項問題

 

下載spring框架:

http://www.

本地: E:\個人數據庫\基本結構\專業(yè)\spring\參考資料\Spring-framework.zip

 

解讀spring框架的目錄結構:

解壓下載的spring框架:

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

/docs:spring api文檔

/lib:spring的編譯和運行所依賴的第三方類庫

 

實例1(不使用工具):

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

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

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

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

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

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

6.寫客戶端測試類

7.編譯運行

 

接口:

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.實例化bean工廠對象,載入xml資源:工廠負責管理bean組件的

              //目前是管理當前xml資源中的bean

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

              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

 

實例2(eclipse):

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

1.新建java工程

2.配置jar:兩個包

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

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();

     }

 

}

 

雜項問題:

1.eclipse中引入xml dtd文件

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

Add:uri:要導入的dtd地址 :spring-beans.dtd

Key type:public id

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

 

2.導入log4j

導入:spring/lib/log4j.jar

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

log4j.properties里面拷貝

解決了運行中顯示紅色的log信息的問題

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲国产黄色精品在线观看| 久久免费精品拍拍一区二区| 深夜视频在线观看免费你懂| 人妻露脸一区二区三区| 亚洲最新av在线观看| 亚洲国产精品无遮挡羞羞| 我要看日本黄色小视频| 国产精品流白浆无遮挡| 成年午夜在线免费视频| 九九热精品视频在线观看| 日韩欧美三级中文字幕| 欧美尤物在线视频91| 国产免费黄片一区二区| 免费精品一区二区三区| 老熟妇乱视频一区二区| 色无极东京热男人的天堂| 日韩欧美一区二区不卡看片| 国产剧情欧美日韩中文在线| 蜜桃传媒在线正在播放| 四季精品人妻av一区二区三区| 亚洲精品中文字幕一二三| 欧美成人黄色一级视频| 精品熟女少妇一区二区三区| 国产精品一区二区三区黄色片| 日本熟女中文字幕一区| 欧美日不卡无在线一区| 中文字幕久热精品视频在线| 日韩午夜福利高清在线观看| 太香蕉久久国产精品视频| 久久综合狠狠综合久久综合| 国产av一区二区三区麻豆| 精品国产成人av一区二区三区| 五月天丁香婷婷狠狠爱| 国产一级片内射视频免费播放| 午夜精品国产一区在线观看| 午夜福利在线观看免费| 青青操日老女人的穴穴| 99国产一区在线播放| 欧美亚洲三级视频在线观看| 国产又长又粗又爽免费视频| 久久国内午夜福利直播|