【spring掃盲】bean別名的兩種方式與優異
阿新 • • 發佈:2021-01-20
接上文我們實現了一個最基本的配置: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");
這種配置方式,可以通過英文",",或者空格,來配置多個別名,呼叫的時候任選一個使用即可。