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 执行结果

posted @ 2022-01-16 14:20  从0开始丿  阅读(185)  评论(0编辑  收藏  举报