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();//类似流,用完关闭。
    }
}

 

转载于:https://www.cnblogs.com/xjs1874704478/p/11175317.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值