使用<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的最主要的有点更简洁。
时间: 2024-10-14 18:02:19