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

首頁 > 編程 > JSP > 正文

Spring依賴注入的三種方式實例詳解

2024-09-05 00:23:30
字體:
來源:轉載
供稿:網友

Spring依賴注入(DI)的三種方式,分別為:

1. 接口注入

2. Setter方法注入

3. 構造方法注入

下面介紹一下這三種依賴注入在Spring中是怎么樣實現的。

首先我們需要以下幾個類:

接口 Logic.java

接口實現類 LogicImpl.java

一個處理類 LoginAction.java

還有一個測試類 TestMain.java

Logic.java如下:

package com.spring.test.di;public interface Logic {public String getName();}

LogicImpl.java如下:

package com.spring.test.di;public class LogicImpl implements Logic{public String getName(){  return "fengyun";}}

TestMain.java

package com.spring.test.di;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXmlApplicationContext;public class TestMain {/** * @param args */public static void main(String[] args) {  // 得到ApplicationContext對象  ApplicationContext ctx = new FileSystemXmlApplicationContext(     "applicationContext.xml");  // 得到Bean  LoginAction loginAction = (LoginAction) ctx.getBean("loginAction");  loginAction.execute();}}

LoginAction.java 會根據使用不同的注入方法而稍有不同

下面按照注入的方法來看LoginAction.java類

Setter方法注入:

package com.spring.test.di;public class LoginAction {private Logic logic;public void execute() {  String name = logic.getName();  System.out.print("My Name Is " + name); }/** * @return the logic */public Logic getLogic() {  return logic;}/** * @param logic *      the logic to set */public void setLogic(Logic logic) {  this.logic = logic;}}

定義了一個Logic 類型的變量 logic, 在LoginAction并沒有對logic 進行實例化,而只有他對應的setter/getter方法,因為我們這里使用的是Spring的依賴注入的方式

applicationContext.xml配置文件如下:

現在可以運行testMain.java了,我們可以看到控制臺打出了 My Name Is fengyun

OK了,這就是spring的setter方法注入,非常簡單

下面我們來看看構造方法注入

顧名思義,構造方法注入,就是我們依靠LoginAction的構造方法來達到DI的目的,如下所示:

LoginAction.java

package com.spring.test.di;public class LoginAction {private Logic logic;public LoginAction(Logic logic) {  this.logic = logic;}public void execute() {  String name = logic.getName();  System.out.print("My Name Is " + name);}}

這里我們添加了一個LoginAction的構造方法

applicationContext.xml配置文件如下:

我們使用constructor-arg來進行配置, index屬性是用來表示構造方法中參數的順序的,如果有多個參數,則按照順序,從 0,1…來配置

我們現在可以運行testMain.java了,結果跟使用Setter方法注入完全一樣.

其中需要注意一點有:構造函數有多個參數的話,如:參數1,參數2,而參數2依賴于參數1,這中情況則要注意構造函數的順序,必須將參數1放在參數2之前。

下面繼續說說我們不常用到的接口注入,還是以LogicAction為例,我們對他進行了修改,如下所示:

LogicAction.java

package com.spring.test.di;public class LoginAction {private Logic logic;public void execute() {  try {    Object obj = Class.forName("com.spring.test.di.LogicImpl")       .newInstance();    logic = (Logic) obj;    String name = logic.getName();    System.out.print("My Name Is " + name);  } catch (Exception e) {    e.printStackTrace();  }}}

配置文件:

對于接口注入這種方式,以上也只是我個人理解,不知道是否有什么問題。呵呵

我們最常用就是Setter和構造函數這兩種注入方法,至于他們各自的對比,我想在只要baidu一下就可以有清楚的答案了。

對于Spring的依賴注入,最重要的就是理解他的,一旦理解了,將會覺得非常的簡單。無非就是讓容器來給我們實例化那些類,我們要做的就是給容器提供這個接口,這個接口就我們的set方法或者構造函數了。

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av一区在线| 国产成人精品电影| 九九精品视频在线| 欧美最猛黑人xxxx黑人猛叫黄| 北条麻妃一区二区三区中文字幕| 欧美在线观看网站| 日本一区二区三区在线播放| 在线精品高清中文字幕| 国产精品一区av| 91精品国产综合久久香蕉922| 国产有码一区二区| 人人爽久久涩噜噜噜网站| 亚洲人成网站色ww在线| 91干在线观看| 久久韩剧网电视剧| 久久免费视频网站| 国产精品免费一区二区三区都可以| 亚洲乱码av中文一区二区| 91在线观看免费| 国产在线视频欧美| 久久噜噜噜精品国产亚洲综合| 精品国产欧美一区二区三区成人| 第一福利永久视频精品| 91国语精品自产拍在线观看性色| 亚洲欧洲日产国码av系列天堂| 亚洲国产91精品在线观看| 国产在线观看91精品一区| 91中文字幕在线| 欧美性xxxx| 国产精品亚洲综合天堂夜夜| 国产精品网站视频| 日韩高清中文字幕| 亚洲www在线| 久久成人免费视频| 中文字幕在线国产精品| 欧美成人午夜免费视在线看片| 69精品小视频| 91成人在线视频| 国产精品视频公开费视频| 亚洲最新中文字幕| 日韩中文有码在线视频| 96精品久久久久中文字幕| 国产男女猛烈无遮挡91| 亚洲视频在线观看免费| 91免费看片网站| 中文字幕在线看视频国产欧美在线看完整| 精品久久久久久久久久久| 日韩高清a**址| 在线播放精品一区二区三区| 国产午夜精品全部视频播放| 久久99热这里只有精品国产| 日韩精品视频在线观看网址| 欧美日韩国产综合视频在线观看中文| 欧美在线精品免播放器视频| 欧美激情久久久久| 欧美日韩久久久久| 成人福利视频在线观看| 国产视频丨精品|在线观看| 午夜免费在线观看精品视频| 欧美成年人网站| 久久噜噜噜精品国产亚洲综合| 国语自产精品视频在线看一大j8| 国产美女精彩久久| 亚洲欧美精品一区二区| 懂色av影视一区二区三区| 亚洲v日韩v综合v精品v| 欧美性猛交xxxx免费看| 色哟哟亚洲精品一区二区| 久久成人精品电影| 欧美一级片免费在线| 在线亚洲午夜片av大片| 国产精品第一视频| 九九精品视频在线| 97久久久免费福利网址| 91精品国产高清久久久久久91| 欧美老少做受xxxx高潮| 精品久久香蕉国产线看观看gif| 欧美国产日韩中文字幕在线| 神马国产精品影院av| 亚洲自拍偷拍在线| 亚洲精品久久久久国产| 这里只有精品视频在线| 久久99精品久久久久久琪琪| 一区二区三区国产视频| 欧美情侣性视频| 欧美福利在线观看| 麻豆一区二区在线观看| 亚洲成人三级在线| 国产精品久久久久久av| 在线观看国产精品淫| 日韩精品亚洲精品| 久久精品视频一| 国产精品女人网站| 亚洲精品国产拍免费91在线| 亚洲全黄一级网站| 亚洲成人网久久久| 亚洲第一精品久久忘忧草社区| 日韩免费观看高清| 欧美www视频在线观看| 久久久视频在线| 欧美极品少妇xxxxⅹ裸体艺术| 日本人成精品视频在线| 欧美一区三区三区高中清蜜桃| 热久久99这里有精品| 色妞在线综合亚洲欧美| 欧美日韩国产va另类| 欧美裸体视频网站| 国产一区私人高清影院| 亚洲国产精品人人爽夜夜爽| 91精品国产成人| 成人免费淫片aa视频免费| 亚洲最新视频在线| 欧美日韩不卡合集视频| 久久夜色精品国产| 成人网欧美在线视频| 国产亚洲精品va在线观看| 亚洲女人初尝黑人巨大| 久久久久久国产精品美女| 懂色av一区二区三区| 中文字幕一精品亚洲无线一区| 精品久久久久久久大神国产| 久久久亚洲成人| 欧美性猛交xxxx黑人猛交| 欧美激情第一页xxx| 国内精品久久久久久久久| 午夜精品久久久久久久男人的天堂| 亚洲电影免费观看高清完整版在线观看| 日本午夜精品理论片a级appf发布| 久久久久久999| 亚洲精品二三区| 日本一欧美一欧美一亚洲视频| 在线看日韩av| 日韩成人xxxx| 国产一区二区三区精品久久久| 日韩电影中文字幕在线观看| 欧美日韩国产综合新一区| 国产亚洲成av人片在线观看桃| 欧美自拍视频在线观看| 欧美在线视频导航| 国产成人在线一区二区| 精品久久久久久| 精品久久中文字幕久久av| 91精品久久久久久久久久久| 亚洲最大在线视频| 97成人在线视频| 欧美与黑人午夜性猛交久久久| 日韩在线精品一区| 亚洲精品国产精品自产a区红杏吧| 欧美激情视频在线| 久久久久亚洲精品| 在线观看91久久久久久| 国产大片精品免费永久看nba| 国产成人自拍视频在线观看| 日韩在线小视频| 日本中文字幕不卡免费| 一区二区福利视频| 亚洲三级黄色在线观看| 久久九九有精品国产23| 国产成人精品综合| 久久九九国产精品怡红院| 69**夜色精品国产69乱| 日韩大陆欧美高清视频区| 亚洲国产成人久久综合一区| 日韩少妇与小伙激情|