Spring对IOC的实现,依赖注入之p命名空间注入

学习spring要点之IOC控制反转的实现依赖注入

还是先入门,简单实现下p命名空间注入

p命名空间是简化setter方法注入的

先简单说明下什么是p命名空间的两个前提

1、需要在xml配置文件头部添加信息:

2、p命名空间注入是基于setter方法的,所以需要对应的属性提供setter方法。
简单实现下

首先pom依赖是spring context依赖,junit依赖

<dependencies>
<!-- spring context依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.0.0-M2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>

接下来就是给一个java类(我这个案例pojo类是在com.spring6.bean)包下的

注意是需要提供setter方法的

public class Dog {
// 简单类型
private String name;
private int age;
// 非简单类型
private Date birth;

// p命名空间注入底层还是set注入,只不过p命名空间注入可以让spring配置变的更加简单。
public void setName(String name) {
this.name = name;
}

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

public void setBirth(Date birth) {
this.birth = birth;
}

@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
", birth=" + birth +
'}';
}
}

然后我们在spring.xml配置文件下进行配置(配置文件在根路径也就是resources目录下)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


<!-- 第一步:在spring的配置文件头部添加p命名空间 xmlns:p="http://www.springframework.org/schema/p"-->
<!-- 第二步:使用p:属性名 = “属性值”-->

<bean id="dogBean" class="com.spring6.bean.Dog" p:name="小花" p:age="3" p:birth-ref="birthBean"/>
<bean id="birthBean" class="java.util.Date"/>
</beans>

测试类

@Test
public void testP(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-p.xml");
Dog dogBean = applicationContext.getBean("dogBean", Dog.class);
System.out.println(dogBean);
}

测试结果

成功给属性赋值

 

 
 
posted @ 2023-10-14 02:57  编程菜鸟01  阅读(55)  评论(0)    收藏  举报