spring-p/c命名空间注入
1 p 命名空间注入
对应的是 set注入
1.1 在配置文件的头文件中加入 p 命名空间的约束
xmlns:p="http://www.springframework.org/schema/p"
1.2 编写实体类
需要有无参构造和set方法
public class User {
private String name;
private int age;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
1.3 在属性文件中注入
<!--p命名空间注入,可以直接注入属性的值:property-->
<bean id="user" class="com.lv.pojo.User" p:name="傻逼" p:age="18"/>
1.4 测试
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("userBeans.xml");
User user = context.getBean("user", User.class);
System.out.println(user);
}
1.5 执行结果
2 c 命名空间注入
对应的是 构造方法注入
2.1 在配置文件的头文件中加入 c 命名空间的约束
xmlns:c="http://www.springframework.org/schema/c"
2.2 编写实体类
需要有 有参构造
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
2.3 在属性文件中注入
<!--c命名空间注入,通过构造器注入:constructs-->
<bean id="user2" class="com.lv.pojo.User" c:name="大傻逼" c:age="38"/>
2.4 测试
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("userBeans.xml");
User user = context.getBean("user2", User.class);
System.out.println(user);
}
2.5 执行结果