Spring入门-----7依赖注入之c命名和p命名空间注入

Posted 我永远信仰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring入门-----7依赖注入之c命名和p命名空间注入相关的知识,希望对你有一定的参考价值。

环境搭建

(1).创建User类

public class User {
    private String name;
    private int age;
    
    public User() {
	}


	public User(String name, int age) {
    	this.name = name;
    	this.age = age;
	}
    
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\\'' +
                ", age=" + age +
                '}';
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

(2).创建userBeans.xml

<?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"
       xmlns:c="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <!--p命名空间注入可以直接注入属性的值 p:property-->
    <bean id="user" class="com.yong.pojo.User" p:name="蟀蟀哥" p:age="18"/>

    <!--c命名空间注入 ,通过构造器注入 c:constructs-->
    <bean id="user2" class="com.yong.pojo.User" c:name="刷刷个" c:age="19"/>

</beans>

(3).测试创建MyTest类

public class MyTest {
    public static void main(String[] args) {
       
        ApplicationContext context = new 			ClassPathXmlApplicationContext("userBeans.xml");
        User user = context.getBean("user", User.class);
        User user2 = context.getBean("user2", User.class);
        System.out.println(user);
        System.out.println(user2);

    }
}

(4).运行结果

代码解释:

1、p命名空间注入

对应了set的属性注入。

在applicationContex.xml中增加:

xmlns:p="http://www.springframework.org/schema/p"

在配置文件中加入

	<!--p命名空间注入可以直接注入属性的值 p:property-->
    <bean id="user" class="com.yong.pojo.User" p:name="蟀蟀哥" p:age="18"/>

2、c命名空间注入

对应了构造器注入

在applicationContex.xml中增加:

xmlns:c="http://www.springframework.org/schema/c"

在User类中增加无参、有参构造器

public User() {
}


public User(String name, int age) {
    this.name = name;
    this.age = age;
}

在配置文件中加入

	<!--c命名空间注入 ,通过构造器注入 c:constructs-->
    <bean id="user2" class="com.yong.pojo.User" c:name="刷刷个" c:age="19"/>

以上是关于Spring入门-----7依赖注入之c命名和p命名空间注入的主要内容,如果未能解决你的问题,请参考以下文章

Spring的依赖注入之p命名空间和c命名空间

Spring入门-----7依赖注入之set注入

Spring框架详解(了解IOC,AOP)

框架----Spring中依赖注入

spring之p命名空间注入

框架学习 Spring之依赖注入DI