扩展方式的依赖注入
扩展方式的依赖注入
概述
扩展方式的依赖注入其实是基于set方式和基于构造器注入的两种方法的简化形式,对应P命名空间和c命名空间,其中p对应property即基于set方式的方法简化,c对应constructor即基于构造器的简化
使用方法
使用p或c命名空间需要在xml导入约束
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
User类
package com.kuangstudy.di;
/**
* 功能描述
*
* @since 2022-06-25
*/
public class User {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public User() {
}
public User(String name, String age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
}
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="u1" class="com.kuangstudy.di.User" p:age="20" p:name="xiaoming"></bean>
<bean id="u2" class="com.kuangstudy.di.User" c:age="30" c:name="xiaohong"></bean>
</beans>
测试类
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.kuangstudy.di.Student;
import com.kuangstudy.di.User;
/**
* 功能描述
*
* @since 2022-06-25
*/
public class Test01 {
@Test
public void test1() {
ApplicationContext context = new ClassPathXmlApplicationContext("beans1.xml");
User u1 = context.getBean("u1", User.class);
System.out.println(u1);
User u2 = context.getBean("u2", User.class);
System.out.println(u2);
}
}