国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 詳解Spring中bean實例化的三種方式

詳解Spring中bean實例化的三種方式

2020-09-11 10:46_江南一點雨 Java教程

本篇文章主要介紹了詳解Spring中bean實例化的三種方式,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

今天我想來說說如何通過xml配置來實例化bean,其實也很簡單。

使用xml配置來實例化bean共分為三種方式,分別是普通構造方法創建、靜態工廠創建、實例工廠創建,ok,那么接下來我們來分別看看這幾種方式。

普通構造方法創建

這種創建方式使我們使用最多的一種創建方式,直接配置bean節點即可,比如我有一個user類,如下:

?
1
2
3
4
5
public class user {
  public void add() {
    system.out.println("add()---------");
  }
}

然后通過簡單配置一個bean節點就可以獲取實例了,如下:

?
1
<bean class="org.sang.user" id="user"/>

ok,我們通過如下代碼進行一個簡單的測試:

?
1
2
3
applicationcontext context = new classpathxmlapplicationcontext("applicationcontext.xml");
    user user = (user) context.getbean("user");
    system.out.println(user);

運行輸出結果如下:

詳解Spring中bean實例化的三種方式

靜態工廠創建

除了通過普通的構造方法創建之外,我們也可以通過靜態構造方法來創建一個bean的實例,假設我有一個類叫做user2,如下:

?
1
2
3
4
5
public class user2 {
  public void add() {
    system.out.println("add2()---------");
  }
}

我給它創建一個靜態工廠,如下:

?
1
2
3
4
5
public class user2factory {
  public static user2 getinstance() {
    return new user2();
  }
}

該工廠中有一個靜態方法,該靜態方法返回一個user2的實例,在spring的配置文件中,我們看看如何生成user2的實例:

 

復制代碼 代碼如下:

<bean id="user2" class="org.sang.user2factory" factory-method="getinstance"/>

 

 

還是bean節點,只是多了一個factory-method屬性,該屬性指明該類中的靜態工廠方法名為getinstance,這樣spring框架就知道調用哪個方法來獲取user2的實例了,測試代碼如下:

?
1
2
3
4
5
6
@test
  public void test2() {
    applicationcontext context = new classpathxmlapplicationcontext("applicationcontext.xml");
    user2 user = (user2) context.getbean("user2");
    user.add();
  }

測試結果如下:

詳解Spring中bean實例化的三種方式

值得強調的是,這種方法并不常用。

實例工廠創建

小伙伴們看了靜態工廠創建bean實例肯定都覺得很麻煩,事實上還有比靜態工廠更麻煩的寫法,那就是通過實例工廠來創建bean實例。實例工廠,顧名思義,就是我們工廠中的方法不是靜態的,比如說,我有一個實體類叫做user3,如下:

?
1
2
3
4
5
public class user3 {
  public void add() {
    system.out.println("add3()---------");
  }
}

然后我還有一個工廠方法,如下:

?
1
2
3
4
5
public class user3factory {
  public user3 getuser3() {
    return new user3();
  }
}

小伙伴們看到,在user3factory類中有一個getuser3的方法,該方法返回一個user3類的實例,但是該方法不是靜態的,那么我們在spring的配置文件中要進行怎樣的配置才能獲取user3的一個實例呢?如下:

?
1
2
<bean class="org.sang.user3factory" id="user3factory"/>
<bean id="user3" factory-bean="user3factory" factory-method="getuser3"/>

第一個bean用來獲取user3factory的實例,第二個bean則根據user3factory的實例,然后指定factory-method,通過getuser3方法來獲取user3的實例。

測試代碼如下:

?
1
2
3
4
5
6
@test
public void test3() {
  applicationcontext context = new classpathxmlapplicationcontext("applicationcontext.xml");
  user3 user = (user3) context.getbean("user3");
  user.add();
}

測試結果如下:

詳解Spring中bean實例化的三種方式

ok,以上就是bean實例化的三種方式,最最常用的是第一種。

本文案例github地址https://github.com/lenve/javaeetest/tree/master/test28-spring1

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/u012702547/article/details/56021922

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品一区久久久久久 | 亚洲色图网站 | 精品影院 | 成年人黄色一级片 | 亚洲精彩视频 | 在线中文 | 亚洲视频三区 | 一区二区三区在线播放 | 羞羞羞羞 | 国产在线一区二区三区 | 在线日韩| 极品美女销魂一区二区三区 | 午夜黄色影院 | 午夜在线电影 | 久久午夜精品 | 色吊丝在线永久观看最新版本 | 日韩高清av | 免费精品视频 | 99精品一区二区三区 | 97国产一区二区精品久久呦 | 黄色网页大全 | 亚洲一区二区三区在线播放 | 色综合视频| 狠狠av | 免费看黄色小视频 | 亚洲国产欧美日韩 | 亚洲一区综合 | 久久精品日产第一区二区三区 | 日韩av福利| 国产一区欧美 | 龙珠z普通话国语版在线观看 | 日韩成人在线影院 | 特黄特色的大片观看免费视频 | 欧美视频第一页 | 国产人妖一区二区 | 午夜寂寞影视在线观看 | 日本中文字幕在线观看 | 亚洲精品一区二区三区 | 无码日韩精品一区二区免费 | 精品96久久久久久中文字幕无 | 欧美久|