Spring P命令空间
Spring P命令空间
对setter方法注入进行简化,替换<property name="属性名">
,而是在<bean p:属性名="普通值" p:属性名-ref="引用值">
p命名空间使用前提,必须添加命名空间
- 配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="personId" class="com.cc.study.di.Person"
p:pname="kevin" p:age="22"
p:homeAddr-ref="homeAddrId" p:companyAddr-ref="companyAddrId">
</bean>
<bean id="homeAddrId" class="com.cc.study.di.Address"
p:addr="广东" p:tel="110">
</bean>
<bean id="companyAddrId" class="com.cc.study.di.Address"
p:addr="北京" p:tel="120">
</bean>
</beans>
- Person
public class Person {
private String pname;
private Integer age;
private Address homeAddr;
private Address companyAddr;
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Address getHomeAddr() {
return homeAddr;
}
public void setHomeAddr(Address homeAddr) {
this.homeAddr = homeAddr;
}
public Address getCompanyAddr() {
return companyAddr;
}
public void setCompanyAddr(Address companyAddr) {
this.companyAddr = companyAddr;
}
}
- Address
public class Address {
private String addr;
private String tel;
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@Override
public String toString() {
return "Address{" +
"addr='" + addr + '\'' +
", tel='" + tel + '\'' +
'}';
}
}
- 测试
@Test
public void demo01(){
String xmlPath = "p.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
Person person = (Person) applicationContext.getBean("personId");
System.out.println(person.getPname());
System.out.println(person.getAge());
System.out.println(person.getCompanyAddr());
System.out.println(person.getHomeAddr());
}