【spring扫盲】bean别名的两种方式与优异

接上文我们实现了一个最基本的配置:https://www.cnblogs.com/yunren/p/14292819.html

 

我们现在获取对象的时候都是getBean("person"),与bean.xml文件中的id对应。如何通过别名,配置一个简单的,自定义的名字呢?

import com.course.coke.pojo.Person;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest2 {

    public static void main(String[] args) {

        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        Person person =  (Person)context.getBean("person");
        person.show();
    }
}

 

方式一:alias

<?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.xsd">
    <!--bean是java对象,由spring来创建和管理-->
    <bean id="person" class="com.course.coke.pojo.Person" >
        <constructor-arg type="java.lang.String" value="Tom2"  />
    </bean>

    <!-- 别名 -->
    <alias name="person" alias="personNew" />

</beans>

调用的时候,可以这么写:

Person person =  (Person)context.getBean("personNew");

 

 

方式二:<bean /> 内的name属性

<?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.xsd">
    <!--bean是java对象,由spring来创建和管理-->
    <bean id="person" class="com.course.coke.pojo.Person" name="p1,p2">
        <constructor-arg type="java.lang.String" value="Tom2"  />
    </bean>

</beans>

调用的时候,可以这么写:

Person person =  (Person)context.getBean("p1");

这种配置方式,可以通过英文",",或者空格,来配置多个别名,调用的时候任选一个使用即可。

 

posted @ 2021-01-20 16:32  愚人李愚  阅读(620)  评论(0编辑  收藏  举报