1. 程式人生 > 實用技巧 >【spring掃盲】bean別名的兩種方式與優異

【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");

這種配置方式,可以通過英文",",或者空格,來配置多個別名,呼叫的時候任選一個使用即可。