Spring----getBean的四種用法


一般默認Spring的配置文件叫applicationContext.xml。放在類路徑下,即src下。當然也可以起名叫其他的,比如haha.xml。


在Students的基礎上:

類路徑下的配置文件:applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                      http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
        
    <bean id="mydevice" class="com.entity.MoveDisk">
        
    </bean>
    
    <!-- bean配置無論是name還是id,都不允許重名 -->
    <!-- 同一個bean的name可以起多個別名,但id不行 -->
    <bean name="stu,s1,s2" class="com.entity.Students">
        <property name="sid" value="s001"/>
        <property name="name" value="茜茜"/>
    </bean>
    <bean name="stu2" class="com.entity.Students">
        <property name="sid" value="s002"/>
        <property name="name" value="夢茜"/>
    </bean>
</beans>

磁盤上的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                      http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
        
    <bean id="mydevice" class="com.entity.MoveDisk">
        
    </bean>
    
    <!-- bean配置無論是name還是id,都不允許重名 -->
    <!-- 同一個bean的name可以起多個別名,但id不行 -->
    <bean name="stu3" class="com.entity.Students">
        <property name="sid" value="s003"/>
        <property name="name" value="女神"/>
    </bean>
</beans>

測試:---四種不同的getBean方法

package com.entity;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class StudentsTest {
    
    @Test
    public void fun1(){
        //獲得上下文對象----類路徑下
        //獲取磁盤上的文件
        //ApplicationContext ctx=new FileSystemXmlApplicationContext("F:\\haha\\test.xml");
        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        //1.getBean(String id|name);要求id和name都不能重復。
        //Students s = (Students) ctx.getBean("stu2");
        
        //2.getBean(Class clazz);通過類型來加載bean,要求類型必須是唯一的***
        //Students s=ctx.getBean(Students.class);//注意:這里無需類型轉換。
        
        //3.getBean(String id|name,Class clazz);
        Students s=ctx.getBean("stu2", Students.class);
        
        //4.getBean(String id|name, Object ...) ==>getBean(String id|name, Object[] )
        //調用指定id的指定的構造方法來獲得對象。
        
        
        System.out.println(s);    
        
        ((AbstractXmlApplicationContext)ctx).close();//類似流,用完關閉。
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM