扩展方式的依赖注入

扩展方式的依赖注入

概述

扩展方式的依赖注入其实是基于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);
    }
}
posted @ 2022-06-26 15:48  Oh,mydream!  阅读(40)  评论(0编辑  收藏  举报