Spring-Bean依赖注入概念和注入对象、依赖注入数据类型

本文主要介绍了Spring框架中的Bean依赖注入,包括对象注入和数据类型(属性)注入的概念。通过实例展示了如何创建UserDao及UserDaoImpl的Bean,并在applicationContext.xml中配置依赖。在测试类UserdaoTest中,通过getBean方法获取注入的对象并调用其方法。
摘要由CSDN通过智能技术生成

一、依赖注入对象

在这里插入图片描述在这里插入图片描述在这里插入图片描述重点:
在这里插入图片描述

二、依赖注入数据类型(属性)

在这里插入图片描述
UserDao:

package cn.itcast.dao;

/**
 * @author QLBF
 * @version 1.0
 * @date 2021/1/10 12:10
 */
public interface UserDao {
    public void save();
}

UserDaoImpl:

package cn.itcast.dao.impl;

import cn.itcast.dao.UserDao;
import cn.itcast.domain.User;

import java.util.List;
import java.util.Map;
import java.util.Properties;

/**
 * @author QLBF
 * @version 1.0
 * @date 2021/1/10 12:11
 */

public class UserDaoImpl implements UserDao {
    private List<String> stringList;
    private List<User> userList;
    private Map<String,User> userMap;
    private Properties properties;

    public void setUserMap(Map<String, User> userMap) {
        this.userMap = userMap;
    }

    public void setProperties(Properties properties) {
        this.properties = properties;
    }

    public List<String> getStringList() {
        return stringList;
    }

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }

    public void setStringList(List<String> stringList) {
        this.stringList = stringList;
    }

    public UserDaoImpl() {
        System.out.println("UserDaoImpl被创建了");
    }

    public void save() {
        System.out.println("普通数据的集合:"+stringList);
        System.out.println("对象的集合:"+userList);
        System.out.println("map含对象集合:"+userMap);
        System.out.println("properties集合:"+properties);
    }
}

User实体类:

package cn.itcast.domain;

/**
 * @author QLBF
 * @version 1.0
 * @date 2021/1/11 10:39
 */
public class User {
    private String name;
    private int age;

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

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

applicationContext.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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="userDao" class="cn.itcast.dao.impl.UserDaoImpl">
        <!--1.注入普通集合-->
        <property name="stringList">
            <list>
                <value>aaa</value>
                <value>bbb</value>
                <value>cccc</value>
            </list>
        </property>

        <!--2.注入对象集合-->
        <property name="userList">
            <list>
                <ref bean="u1"></ref>
                <ref bean="u2"></ref>
            </list>
        </property>

        <!--3.注入map(含对象)集合-->
        <property name="userMap">
            <map>
                <entry key="key1" value-ref="u1" ></entry>
                <entry key="key2" value-ref="u2" ></entry>
            </map>
        </property>

        <!--4.注入properties集合-->
        <property name="properties">
            <props>
               <prop key="p1" >p1111</prop>
                <prop key="p2" >p2222</prop>
                <prop key="p3" >p3333</prop>
            </props>
        </property>
    </bean>

    <bean id="u1" class="cn.itcast.domain.User">
        <!--给u1绑定数据-->
        <property name="name" value="zhangsan"></property>
        <property name="age" value="18"></property>

    </bean>
    <bean id="u2" class="cn.itcast.domain.User">
        <property name="name" value="wangwu"></property>
        <property name="age" value="33"></property>
    </bean>
</beans>

UserdaoTest:

import cn.itcast.dao.UserDao;
import cn.itcast.dao.impl.UserDaoImpl;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author QLBF
 * @version 1.0
 * @date 2021/1/10 12:27
 */

public class UserdaoTest {

    @Test
    public void test1(){
        //这里写applicationContext.xml是因为我的spring的配置文件就是applicationContext而已,要看你对应的名字哦
        ApplicationContext app=new ClassPathXmlApplicationContext("applicationContext.xml");
        //这里getBean的userDao是对应你的这里写applicationContext.xml的id名,因为我知道是UserDao,所以强转了一下
        UserDao userDao1 = (UserDao) app.getBean("userDao");
        userDao1.save();
    }
}

测试结果:在这里插入图片描述在这里插入图片描述

Spring整体思路:
首先你创建你的UserDao及其UserDaoImpl的Bean,你再你的applicationContext设置了id为UserDao,但它的类指向是UserDaoImpl,然后你在UserdaoTest的时候是getBean(UserDao) ,其实就是获取了UserDaoImpl对象了,然后再调用其的save方法!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值