亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Spring的核心機制依賴注入簡介

2019-11-18 14:12:02
字體:
來源:轉載
供稿:網友

  SPRing能有效地組織J2EE應用各層的對象。不管是控制層的Action對象,還是業務層的Service對象,還是持久層的DAO對象,都可在Spring的治理下有機地協調、運行。Spring將各層的對象以松耦合的方式組織在一起,Action對象無須關心Service對象的具體實現,Service對象無須關心持久層對象的具體實現,各層對象的調用完全面向接口。當系統需要重構時,代碼的改寫量將大大減少。

  上面所說的一切都得宜于Spring的核心機制,依靠注入。依靠注入讓bean與bean之間以配置文件組織在一起,而不是以硬編碼的方式耦合在一起。理解依靠注入

  依靠注入(Dependency Injection)和控制反轉(Inversion of Control)是同一個概念。具體含義是:當某個角色(可能是一個java實例,調用者)需要另一個角色(另一個Java實例,被調用者)的協助時,在傳統的程序設計過程中,通常由調用者來創建被調用者的實例。但在Spring里,創建被調用者的工作不再由調用者來完成,因此稱為控制反轉;創建被調用者實例的工作通常由Spring容器來完成,然后注入調用者,因此也稱為依靠注入。

  不管是依靠注入,還是控制反轉,都說明Spring采用動態、靈活的方式來治理各種對象。對象與對象之間的具體實現互相透明。在理解依靠注入之前,看如下這個問題在各種社會形態里如何解決:一個人(Java實例,調用者)需要一把斧子(Java實例,被調用者)。

  (1)原始社會里,幾乎沒有社會分工。需要斧子的人(調用者)只能自己去磨一把斧子(被調用者)。對應的情形為:Java程序里的調用者自己創建被調用者。

  (2)進入工業社會,工廠出現。斧子不再由普通人完成,而在工廠里被生產出來,此時需要斧子的人(調用者)找到工廠,購買斧子,無須關心斧子的制造過程。對應Java程序的簡單工廠的設計模式。

  (3)進入“按需分配”社會,需要斧子的人不需要找到工廠,坐在家里發出一個簡單指令:需要斧子。斧子就自然出現在他面前。對應Spring的依靠注入。

  第一種情況下,Java實例的調用者創建被調用的Java實例,必然要求被調用的Java類出現在調用者的代碼里。無法實現二者之間的松耦合。

  第二種情況下,調用者無須關心被調用者具體實現過程,只需要找到符合某種標準(接口)的實例,即可使用。此時調用的代碼面向接口編程,可以讓調用者和被調用者解耦,這也是工廠模式大量使用的原因。但調用者需要自己定位工廠,調用者與特定工廠耦合在一起。

  第三種情況下,調用者無須自己定位工廠,程序運行到需要被調用者時,系統自動提供被調用者實例。事實上,調用者和被調用者都處于Spring的治理下,二者之間的依靠關系由Spring提供。

  所謂依靠注入,是指程序運行過程中,假如需要調用另一個對象協助時,無須在代碼中創建被調用者,而是依靠于外部的注入。Spring的依靠注入對調用者和被調用者幾乎沒有任何要求,完全支持對POJO之間依靠關系的治理。依靠注入通常有兩種:

  ·設值注入。

  ·構造注入。 設值注入

  設值注入是指通過setter方法傳入被調用者的實例。這種注入方式簡單、直觀,因而在Spring的依靠注入里大量使用??聪旅娲a,是Person的接口

//定義Person接口
public interface Person
{
 //Person接口里定義一個使用斧子的方法
 public void useAxe();
}


  然后是Axe的接口

//定義Axe接口

public interface Axe
{
 //Axe接口里有個砍的方法
 public void chop();
}
  Person的實現類

//Chinese實現Person接口

public class Chinese implements Person
{
 //面向Axe接口編程,而不是具體的實現類
 private Axe axe;
 //默認的構造器
 public Chinese()
 {}
 //設值注入所需的setter方法
 public void setAxe(Axe axe)
 {
  this.axe = axe;
 }
 //實現Person接口的useAxe方法
 public void useAxe()
 {
  System.out.println(axe.chop());
 }
}
  Axe的第一個實現類

//Axe的第一個實現類 StoneAxe

public class StoneAxe implements Axe
{
 //默認構造器
 public StoneAxe()
 {}
 //實現Axe接口的chop方法
 public String chop()
 {
  return "石斧砍柴好慢";
 }
}
  下面采用Spring的配置文件將Person實例和Axe實例組織在一起。配置文件如下所示:

<!-- 下面是標準的xml文件頭 -->
<?xml version="1.0" encoding="gb2312"?>
<!-- 下面一行定義Spring的XML配置文件的dtd -->
"http://www.springframework.org/dtd/spring-beans.dtd">
<!-- 以上三行對所有的Spring配置文件都是相同的 -->
<!-- Spring配置文件的根元素 -->
<BEANS>
?。?—定義第一bean,該bean的id是chinese, class指定該bean實例的實現類 -->
?。糂EAN class=lee.Chinese id=chinese>
?。?-- property元素用來指定需要容器注入的屬性,axe屬性需要容器注入此處是設值注入,因此Chinese類必須擁有setAxe方法 -->

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品色悠悠| 91av在线免费观看视频| 国产精品美女久久久久久免费| 另类图片亚洲另类| 日韩最新免费不卡| 日韩中文字幕精品| 国产精自产拍久久久久久| 亚洲欧美在线磁力| 欧美另类在线播放| 欧美有码在线观看视频| 久久大大胆人体| 成人免费xxxxx在线观看| 欧美香蕉大胸在线视频观看| 精品视频9999| 亚洲aaa激情| …久久精品99久久香蕉国产| 亚洲国产精品视频在线观看| 国产成+人+综合+亚洲欧美丁香花| 成人免费网站在线观看| 国产精品久久久久久久久久久久久久| 日韩中文字幕在线精品| 久热爱精品视频线路一| 欧美夫妻性生活视频| 亚洲va欧美va在线观看| 九九精品在线视频| 欧美激情性做爰免费视频| 国产999在线观看| 日韩欧美一区视频| 亚洲第一精品夜夜躁人人躁| 久久99久国产精品黄毛片入口| 国产成人在线视频| 亚洲国产美女久久久久| 欧美激情性做爰免费视频| 亚洲精品一区二区三区婷婷月| 国产欧美日韩中文字幕| 亚洲成年人影院在线| 久久久久99精品久久久久| www.日韩av.com| 欧美肥婆姓交大片| 国产精品久久久久久影视| 久久影视电视剧免费网站清宫辞电视| 欧美老肥婆性猛交视频| 国产成人黄色av| 欧美精品亚州精品| 美女撒尿一区二区三区| 欧美精品www在线观看| 国产精品一区久久久| 亚洲丁香婷深爱综合| 欧美成人午夜视频| 色偷偷88888欧美精品久久久| 亚洲日本欧美中文幕| 一本一本久久a久久精品牛牛影视| 国产一区二区日韩| 日韩免费电影在线观看| 亚洲国产另类久久精品| 国模视频一区二区三区| 91亚洲人电影| 91日韩在线播放| 久久国产一区二区三区| 亚洲第五色综合网| 91av成人在线| 欧美成人午夜激情视频| 在线日韩av观看| 57pao成人永久免费视频| 久久精品视频在线播放| 欧美另类老肥妇| 亚洲二区在线播放视频| 九九久久综合网站| 欧美床上激情在线观看| 国产精品美女久久久免费| 国产精品免费视频xxxx| 国外日韩电影在线观看| xxxx欧美18另类的高清| 久久久久久亚洲精品不卡| 91日本视频在线| 91精品国产综合久久久久久久久| 亚洲精品黄网在线观看| 国产成人涩涩涩视频在线观看| 欧美怡红院视频一区二区三区| 欧美大片va欧美在线播放| 日韩免费av在线| 91精品国产综合久久香蕉最新版| 欧美国产中文字幕| 亚洲乱码一区av黑人高潮| www.国产精品一二区| 亚洲精品国产福利| 亚洲直播在线一区| 亚洲成人av资源网| 伊人久久男人天堂| 91亚洲国产成人久久精品网站| 亚洲欧美日韩一区二区三区在线| 亚洲国产精品电影在线观看| 亚洲精品欧美日韩专区| 日韩精品一区二区视频| 亚洲精品成人av| 久久在线免费视频| 97免费视频在线播放| 久久久女女女女999久久| 欧美精品福利视频| 成人一区二区电影| 国产www精品| 国产91|九色| 在线日韩av观看| 日韩一区二区三区在线播放| 欧美怡春院一区二区三区| 亚洲综合精品伊人久久| 国产原创欧美精品| 日韩av综合网| 欧美激情欧美激情在线五月| 欧美一级电影在线| 国产福利精品av综合导导航| 成人xvideos免费视频| 久久久999精品| 日韩高清电影免费观看完整| 国产精品大陆在线观看| 国产精品美腿一区在线看| 欧美大片免费观看在线观看网站推荐| 一个人看的www欧美| 国产成人精品999| 日本高清久久天堂| 精品在线小视频| 91精品免费久久久久久久久| 91精品久久久久久久久久久| 日韩风俗一区 二区| 欧美日韩一二三四五区| 亚洲视频在线观看免费| 91网站免费看| 欧美亚洲国产日韩2020| 国产剧情日韩欧美| 不卡av电影在线观看| 日韩av手机在线| 色综合伊人色综合网| 亚洲mm色国产网站| 久久精品国产96久久久香蕉| 亚洲精品自拍视频| 国产亚洲精品久久久| 欧美日韩国产在线看| 一夜七次郎国产精品亚洲| 日韩av一区二区在线观看| 欧美日韩在线视频首页| 国产欧美亚洲精品| 91综合免费在线| 91精品国产91久久久久福利| 亚洲成人教育av| 成人精品视频99在线观看免费| 成人女保姆的销魂服务| 国产成人福利夜色影视| 亚洲电影免费观看高清完整版在线观看| 91精品国产综合久久香蕉922| www高清在线视频日韩欧美| 8090理伦午夜在线电影| 一本色道久久88综合日韩精品| 69精品小视频| 亚洲精品女av网站| 欧美日韩国产中文精品字幕自在自线| 成人啪啪免费看| 国产91精品不卡视频| 色哟哟网站入口亚洲精品| 高清欧美性猛交xxxx黑人猛交| 亚洲男人天堂视频| 精品露脸国产偷人在视频| 亚洲成人激情小说| 91亚洲国产成人久久精品网站| 欧美日韩国产一区二区|