Spring框架總結(jié)(一)

名詞解釋

名詞 解析 描述
框架 就是組件的集合 比如:Struts、Spring、Hibernate就是組件的集合,公共代碼的抽象。
組件 就是常用的功能包封裝成工具類(lèi). 常用組件:
Dom4j/Xpath、DBUtils、C3p0、BeanUtils、log4j
泛型 進(jìn)行類(lèi)型檢查,較少類(lèi)型轉(zhuǎn)化,自己定義一個(gè)可以為任意類(lèi)型的類(lèi),jdk1.5之后產(chǎn)生

spring引入

  • 在spring之前的web開(kāi)發(fā)方式是MVC模式,就是jsp+servlet+javabean,這樣會(huì)產(chǎn)生一個(gè)問(wèn)題,如果需求特別多的話,就需要,多次復(fù)寫(xiě)servlet,這樣會(huì)造成代碼的冗余,同時(shí),也對(duì)開(kāi)發(fā)人員造成了工作量增加的情況.

  • 這樣每次都需要new很多的dao和service,我們已知每次new 對(duì)象,就會(huì)耗費(fèi)內(nèi)存,從而使項(xiàng)目整體的速度變得遲緩.同時(shí),類(lèi)和類(lèi)之間的依賴(lài)性增強(qiáng)了很多,service必須有dao,action必須有service

  • 上邊的話術(shù)語(yǔ)就是:

    • (1)對(duì)象數(shù)量action個(gè)必須多個(gè),service和DAO一個(gè),創(chuàng)建時(shí)間變
    • (2)對(duì)象的依賴(lài)關(guān)系緊密:action依賴(lài)service,service依賴(lài)dao,而spring就是解決了上述兩個(gè)問(wèn)題
  • 根據(jù)此模型的寫(xiě)法就是

dao


1      public class UserDAO {
2 
3        public void saveUser() {
4           System.out.println("保存成功**********************");
5 }
6 
7 }

service


1        public class UserService {
2         private UserDAO dao = new UserDAO ;
3 
4         public void save() {
5             dao.saveUser();
6           }
7 
8 }

action


public class UserAction {

    private UserService us = new  UserService ;

    public String execute() {
        us.save();
        return null;
    }

}

Spring 功能

名程 描述
侵入式設(shè)計(jì) 使用了框架,對(duì)本地有的類(lèi)有影響,對(duì)本身有的類(lèi)實(shí)現(xiàn)或繼承操作了
例如:struts框架,必須繼承ActionSupport才能實(shí)現(xiàn)功能
非侵入式設(shè)計(jì)(優(yōu)于侵入式) 使用了框架,對(duì)本身的類(lèi)結(jié)構(gòu)無(wú)影響.
例如:Hibernate框架,只是映射,不影響其他
Spring框架,Spring提倡最少的侵入
控制反轉(zhuǎn) 用setter方法代替原來(lái)的new一個(gè)到對(duì)象處理對(duì)象創(chuàng)建的問(wèn)題,依賴(lài)注入,處理對(duì)象關(guān)系的問(wèn)題
現(xiàn)有控制反轉(zhuǎn),才有依賴(lài)注入
依賴(lài)注入實(shí)現(xiàn)(加個(gè)set方法,this一下):
通過(guò)set方法依賴(lài)注入
AOp面向切面編程 由很多重復(fù)代碼形成的類(lèi)
舉例:事物/日志/權(quán)限
  • Spring主要功能和開(kāi)發(fā)步驟可以解決對(duì)象創(chuàng)建和依賴(lài)關(guān)系的一種框架且可以和其他框架一起使用.整合(粘合)作用的一個(gè)框架

Spring與Struts Spring和hibernate

  • Spring提供了一站式解決方案
(1)SpringCore spring的核心功能(其他功能需要依賴(lài)它):IOC容器:解決對(duì)象創(chuàng)建及依賴(lài)關(guān)系
注意:控制反轉(zhuǎn)屬于IOC
(2)SpringWeb spring對(duì)web模塊的支持
a、可以與Struts整合,讓struts的action創(chuàng)建交給spring
b、springMVC模式,可以省略Struts,用SpringMVC代替Struts
(3)SpringDAO Spring對(duì)jdbc操作的支持 [jdbcTemplate模板工具類(lèi)]
(4)SpringORM Spring對(duì)orm的支持
a、既可以與hibernate整合,[session]
b、也可以使用spring的對(duì)hibernate操作的封裝
(5)SpringAOP 切面編程
(6)SpringEE spring對(duì)javaee其他模塊的支持
  • 控制反轉(zhuǎn): 原來(lái)action內(nèi)要new一個(gè)service

public class action{
DAOservice s = new DAOserviceImp();
}

控制反轉(zhuǎn)時(shí),調(diào)用外部的service
public class action extends ActionSupport{
private DAOservice s ;

private DAOservice setDAOservice(DAOservice daos){
this.s=daos;
}
}

  • 控制反轉(zhuǎn)的作用:對(duì)象的創(chuàng)建交給外部容器處理 容器是useraction userservice。依賴(lài)注入:處理對(duì)象的關(guān)聯(lián)關(guān)系

public class action extends ActionSupport{
private DAOservice s ;

private DAOservice setDAOservice(DAOservice daos){
this.s=daos;
}

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容