IOC-Bean對(duì)象以及常用屬性

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

  • 無(wú)參構(gòu)造創(chuàng)建
  • 靜態(tài)工廠創(chuàng)建
  • 實(shí)例工廠創(chuàng)建
    1 無(wú)參構(gòu)造創(chuàng)建(默認(rèn)是無(wú)參的)
  • .xml配置
    <!--無(wú)參構(gòu)造-->
    <bean id="user" class="User"></bean>
  • 對(duì)象定義
public class User {
    public void add(){
        System.out.println("add...................");
    }
}
  • 測(cè)試
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)建對(duì)象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對(duì)象
       User user= (User) context.getBean("user");
        user.add();
     System.out.println(user);
    }
}

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

  • .xml配置
    <!--使用工廠創(chuàng)建對(duì)象-->
    <bean id="bean2" class="Bean2Factory" factory-method="getBean2"></bean>
  • 創(chuàng)建對(duì)象
public class Bean2 {
    public void add(){
        System.out.println("bean2............");
    }
}
  • 創(chuàng)建靜態(tài)工廠類(lèi)
public class Bean2Factory {
    public  static  Bean2 getBean2(){
    return  new Bean2();
    }
}
  • 測(cè)試
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)建對(duì)象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對(duì)象
 Bean2 bean2= (Bean2) context.getBean("bean2");
        System.out.println(bean2);
    }
}

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

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

注釋:因?yàn)椴皇庆o態(tài)對(duì)象,所以不能直接通過(guò)類(lèi)名直接調(diào)用方法,所以要先通過(guò)類(lèi)名。

  • 對(duì)象創(chuàng)建
public class Bean3 {
public void add(){
    System.out.println("bean3............");
}
}
  • 實(shí)體工程類(lèi)創(chuàng)建
public class Bean3Factory {
    public  Bean3 getBean3(){
        return  new Bean3();
    }
}
  • 測(cè)試
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)建對(duì)象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對(duì)象
        Bean3 bean3= (Bean3) context.getBean("bean3");
        System.out.println(bean3);
        bean3.add();

    }
}

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

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

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

  • singleton:默認(rèn)值,單例(只有一個(gè)對(duì)象)
    1 .xml配置


    單例.png

    2 測(cè)試

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)建對(duì)象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對(duì)象
        User user1= (User) context.getBean("user");
        User user2= (User) context.getBean("user");
        System.out.println(user1);
        System.out.println(user2);
    }
}

3 運(yùn)行結(jié)果

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

1.xml配置

多例

2 測(cè)試

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)建對(duì)象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
        //得到配置的對(duì)象
        User user1= (User) context.getBean("user");
        User user2= (User) context.getBean("user");
        System.out.println(user1);
        System.out.println(user2);
    }
}

3 運(yùn)行結(jié)果

運(yùn)行結(jié)果

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

  • request:創(chuàng)建對(duì)象把對(duì)象放到request域里
  • session:創(chuàng)建對(duì)象把對(duì)象放到session域里
  • globalSession(全局):創(chuàng)建對(duì)象把對(duì)象放到globalSession域里(登錄一次,其他同類(lèi)不用在登錄)
最后編輯于
?著作權(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)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,734評(píng)論 18 399
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評(píng)論 6 342
  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥(niǎo)慢飛閱讀 6,248評(píng)論 0 4
  • 自己覺(jué)得形容愛(ài)情最好的詞句就是:在天愿做比翼鳥(niǎo),在地愿為連理枝。相互交融,相互體貼,共同承擔(dān)生活的苦與樂(lè),就像三毛...
    嬰兒床閱讀 352評(píng)論 4 6

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