IOC-Bean對象以及常用屬性

一 IOC-Bean對象創(chuàng)建的三種方式

  • 無參構(gòu)造創(chuàng)建
  • 靜態(tài)工廠創(chuàng)建
  • 實例工廠創(chuàng)建
    1 無參構(gòu)造創(chuàng)建(默認是無參的)
  • .xml配置
    <!--無參構(gòu)造-->
    <bean id="user" class="User"></bean>
  • 對象定義
public class User {
    public void add(){
        System.out.println("add...................");
    }
}
  • 測試
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by pc on 2017/9/7.
 */
public class TextIOC {
    public static void main(String[] args) {
        //加載Spring配置文件疯溺,并創(chuàng)建對象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對象
       User user= (User) context.getBean("user");
        user.add();
     System.out.println(user);
    }
}

2 靜態(tài)工廠創(chuàng)建

  • .xml配置
    <!--使用工廠創(chuàng)建對象-->
    <bean id="bean2" class="Bean2Factory" factory-method="getBean2"></bean>
  • 創(chuàng)建對象
public class Bean2 {
    public void add(){
        System.out.println("bean2............");
    }
}
  • 創(chuàng)建靜態(tài)工廠類
public class Bean2Factory {
    public  static  Bean2 getBean2(){
    return  new Bean2();
    }
}
  • 測試
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by pc on 2017/9/7.
 */
public class TextIOC {
    public static void main(String[] args) {
        //加載Spring配置文件,并創(chuàng)建對象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對象
 Bean2 bean2= (Bean2) context.getBean("bean2");
        System.out.println(bean2);
    }
}

3 實例工廠創(chuàng)建

  • .xml配置
   <!--創(chuàng)建工廠對象-->
    <bean id="bean3Factory" class="Bean3Factory"></bean>
    <bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"></bean>

注釋:因為不是靜態(tài)對象怜械,所以不能直接通過類名直接調(diào)用方法,所以要先通過類名。

  • 對象創(chuàng)建
public class Bean3 {
public void add(){
    System.out.println("bean3............");
}
}
  • 實體工程類創(chuàng)建
public class Bean3Factory {
    public  Bean3 getBean3(){
        return  new Bean3();
    }
}
  • 測試
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by pc on 2017/9/7.
 */
public class TextIOC {
    public static void main(String[] args) {
        //加載Spring配置文件,并創(chuàng)建對象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對象
        Bean3 bean3= (Bean3) context.getBean("bean3");
        System.out.println(bean3);
        bean3.add();

    }
}

二 Bean標簽常用屬性
(1) id屬性:起名稱奈嘿,id屬性值名稱任意命名

  • id屬性值,不能包含特殊符號
  • 根據(jù)id值得到配置對象

(2)class屬性:創(chuàng)建對象所在類的全路徑
(3)name屬性:功能和id屬性一樣的吞加,id屬性值不能包含特殊符號裙犹,但是在name屬性值里面可以包含特殊符號。
(4)scpoe屬性:

  • singleton:默認值衔憨,單例(只有一個對象)
    1 .xml配置


    單例.png

    2 測試

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by pc on 2017/9/7.
 */
public class TextIOC {
    public static void main(String[] args) {
        //加載Spring配置文件叶圃,并創(chuàng)建對象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對象
        User user1= (User) context.getBean("user");
        User user2= (User) context.getBean("user");
        System.out.println(user1);
        System.out.println(user2);
    }
}

3 運行結(jié)果

運行結(jié)果
  • 注釋:結(jié)果顯示,單例測試調(diào)用同一個User對象的兩個配置User對象輸出地址相同
  • prototype:多例

1.xml配置

多例

2 測試

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by pc on 2017/9/7.
 */
public class TextIOC {
    public static void main(String[] args) {
        //加載Spring配置文件践图,并創(chuàng)建對象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對象
        User user1= (User) context.getBean("user");
        User user2= (User) context.getBean("user");
        System.out.println(user1);
        System.out.println(user2);
    }
}

3 運行結(jié)果

運行結(jié)果

注釋:多例測試掺冠,調(diào)用同一個User對象的兩個配置User對象輸出地址不同

  • request:創(chuàng)建對象把對象放到request域里
  • session:創(chuàng)建對象把對象放到session域里
  • globalSession(全局):創(chuàng)建對象把對象放到globalSession域里(登錄一次,其他同類不用在登錄)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末码党,一起剝皮案震驚了整個濱河市德崭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌揖盘,老刑警劉巖眉厨,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異兽狭,居然都是意外死亡憾股,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進店門箕慧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荔燎,“玉大人,你說我怎么就攤上這事销钝∮凶桑” “怎么了?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵蒸健,是天一觀的道長座享。 經(jīng)常有香客問我婉商,道長,這世上最難降的妖魔是什么渣叛? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任丈秩,我火速辦了婚禮,結(jié)果婚禮上淳衙,老公的妹妹穿的比我還像新娘蘑秽。我一直安慰自己,他們只是感情好箫攀,可當(dāng)我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布肠牲。 她就那樣靜靜地躺著,像睡著了一般靴跛。 火紅的嫁衣襯著肌膚如雪缀雳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天梢睛,我揣著相機與錄音肥印,去河邊找鬼。 笑死绝葡,一個胖子當(dāng)著我的面吹牛深碱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藏畅,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼莹痢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了墓赴?” 一聲冷哼從身側(cè)響起竞膳,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诫硕,沒想到半個月后坦辟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡章办,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年锉走,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片藕届。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡挪蹭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出休偶,到底是詐尸還是另有隱情梁厉,我是刑警寧澤,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站词顾,受9級特大地震影響八秃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肉盹,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一昔驱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧上忍,春花似錦骤肛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至它抱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間朴艰,已是汗流浹背观蓄。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留祠墅,地道東北人侮穿。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像毁嗦,于是被迫代替她去往敵國和親亲茅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理狗准,服務(wù)發(fā)現(xiàn)克锣,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法腔长,類相關(guān)的語法袭祟,內(nèi)部類的語法,繼承相關(guān)的語法捞附,異常的語法巾乳,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,778評論 6 342
  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL鸟召、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 5,460評論 0 4
  • 自己覺得形容愛情最好的詞句就是:在天愿做比翼鳥欧募,在地愿為連理枝压状。相互交融,相互體貼跟继,共同承擔(dān)生活的苦與樂何缓,就像三毛...
    嬰兒床閱讀 316評論 4 6