spring命名空間p裝配屬性

使用<property>元素爲bean的屬性裝備值和引用並不太複雜。儘管如此,spring的命名空間p提供了另一種bean屬性的裝配方式。

命名空間p的schema url是:http://www.springframework.org/schema/p

直接看例子(還是角色跟用戶的model):

public class Roles {
	private int id;
	private String roleName;
	private Users users;
	//省略set get方法
	//重寫toString方法,方便測試
	@Override
	public String toString() {
		return "Roles [id=" + id + ", roleName=" + roleName + ", users="
				+ users + "]";
	}
}

public class Users {
	private int id;
	private String name;
	//省略set get方法

	@Override
	public String toString() {
		return "Users [id=" + id + ", name=" + name + "]";
	}
}

spring配置:

<bean id="roles" class="cn.com.ztz.spring.model.Roles"
		p:id="1"
		p:roleName="管理員"
		p:users-ref="users"/>
	
<bean id="users" class="cn.com.ztz.spring.model.Users"
		p:id="2"
		p:name="張三"/>
運行main方法:

public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
		Roles r=(Roles)context.getBean("roles");
		System.out.println(r.toString());
	}

輸出結果:

Roles [id=1, roleName=管理員, users=Users [id=2, name=張三]]


選擇<property>還是命名空間p取決於你,他們是等價的。命名空間p的最主要的有點更簡潔。




發佈了54 篇原創文章 · 獲贊 47 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章