zoukankan      html  css  js  c++  java
  • 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();//类似流,用完关闭。
        }
    }
  • 相关阅读:
    【GIS】SuperMap加载三维服务
    【GIS】SuperMap-Web3D-Sql查询示例
    【GIS】Cesium绘制轨迹线
    【GIS】Cesium地下模式设置
    【Java】jfinal-layui:org.postgresql.util.PSQLException: ERROR: syntax error at or near "value" 位置:11
    【Java】jfinal-layui、postgres
    【JavaScript】js注入
    【可视化】地质油藏可视化之四-面元渐进涂色
    【可视化】地质油藏可视化之三-基于threejs绘制三维zmap数据
    【可视化】地质油藏可视化之一-zmap数据转换
  • 原文地址:https://www.cnblogs.com/xjs1874704478/p/11175317.html
Copyright © 2011-2022 走看看