• 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();//类似流,用完关闭。
        }
    }
  • 相关阅读:
    实验11——指针的基础应用
    C语言程序设计第10堂作业
    实验九——基本数据类型存储及应用总结
    C语言程序设计第8堂作业
    实验七——函数定义及调用总结
    实验六——循环结构程序练习总结
    实验五——循环结构学习总结
    实验四——多分支结构及本章总结
    9.29第三次作业
    zuoyeQAQ
  • 原文地址:https://www.cnblogs.com/xjs1874704478/p/11175317.html
Copyright © 2020-2023  润新知