Spring中Bean注入方式和注入类型

Spring中Bean注入方式和注入类型

一、注入方式

二、注入类型

2.1List类型(使用set方法的属性注入)

1、业务实现类定义set方法:

java 复制代码
package com.itheima.service.impl;

import com.itheima.service.UserService;

import java.util.List;

//@Service("userService")
public class UserServiceImpl2 implements UserService
{
    @Override
    public void show2() {

    }

    @Override
    public void show1() {
//        打印集合
        System.out.println(stringList);
    }
//    注入集合
    private List<String> stringList;
//    使用set方法注入(还还有一种就是通过构造注入)
    public void setStringList(List<String> stringList) {
        this.stringList = stringList;
    }
}

2、xml中bean的配置:

java 复制代码
<bean name="userService" class="com.itheima.service.impl.UserServiceImpl2">
        <property name="stringList">
            <list>
<!--                由于是String类型,所以这里直接写value即可-->
                <value>aaa</value>
                <value>bbb</value>
                <value>ccc</value>
            </list>
        </property>
    </bean>

2.2List加对象引用:List

1、业务实现类定义set方法:

java 复制代码
  private List<UserDao> userDaoList;
    public void setUserDaoList(List<UserDao> userDaoList) {
        this.userDaoList = userDaoList;
    }

2、直接在List中定义:

java 复制代码
<bean name="userService" class="com.itheima.service.impl.UserServiceImpl2">
        <property name="userDaoList">
            <list>
<!--                内部是对象,要么直接配要么ref引入-->
                <bean class="com.itheima.dao.impl.UserDaoImpl"/>
                <bean class="com.itheima.dao.impl.UserDaoImpl"/>
                <bean class="com.itheima.dao.impl.UserDaoImpl"/>
                <bean class="com.itheima.dao.impl.UserDaoImpl"/>
            </list>
        </property>
    </bean>

3、在外面定义,List中直接引用

java 复制代码
<bean name="userService" class="com.itheima.service.impl.UserServiceImpl2">
        <property name="userDaoList">
            <list>
                <ref bean="userDao1"/>
                <ref bean="userDao2"/>
                <ref bean="userDao3"/>
                <ref bean="userDao4"/>
            </list>
        </property>
    </bean>
    <bean name="userDao1" class="com.itheima.dao.impl.UserDaoImpl"/>
    <bean name="userDao2" class="com.itheima.dao.impl.UserDaoImpl"/>
    <bean name="userDao3" class="com.itheima.dao.impl.UserDaoImpl"/>
    <bean name="userDao4" class="com.itheima.dao.impl.UserDaoImpl"/>

2.3Set类型

java 复制代码
<property name="stringSet">
            <set>
                <value>yyy</value>
                <value>zzz</value>
            </set>
        </property>

2.4Set类型

也是同理,使用set方法,这里只给出xml中bean的配置即可:

1、直接在Set中定义

java 复制代码
<property name="userDaoSet">
            <set>
                <bean class="com.itheima.dao.impl.UserDaoImpl"/>
                <bean class="com.itheima.dao.impl.UserDaoImpl"/>
                <bean class="com.itheima.dao.impl.UserDaoImpl"/>
            </set>
        </property>

2、在外面定义,Set中直接引用

java 复制代码
<property name="userDaoSet">
            <set>
                <ref bean="userDao1"/>
                <ref bean="userDao2"/>
                <ref bean="userDao3"/>
            </set>
        </property>

2.5Map<String,UserDao>类型

java 复制代码
        <property name="userDaoMap">
            <map>
                <entry key="m1" value-ref="userDao1"/>
                <entry key="m2" value-ref="userDao2"/>
                <entry key="m3" value-ref="userDao3"/>
            </map>
        </property>

2.6 Properties

java 复制代码
  <property name="properties">
            <props>
                <prop key="kk1">a1</prop>
                <prop key="kk2">a2</prop>
                <prop key="kk3">a3</prop>
            </props>
        </property>
相关推荐
申阳2 小时前
Day 22:SpringBoot4 + Tauri 2.0(VUE) 登录功能前后端联调
前端·后端·程序员
爱跑步的程序员~2 小时前
IOC和AOP详解
java·spring
武哥聊编程2 小时前
基于Springboot3+Vue3的仓库管理系统,经典项目,免费学习
java·学习·mysql·vue·springboot·课程设计
CoderYanger2 小时前
C.滑动窗口-求子数组个数-越短越合法——LCP 68. 美观的花束
java·开发语言·数据结构·算法·leetcode
golang学习记2 小时前
Spring AI 1.1 新特性详解:五大核心升级全面提升AI应用开发体验
java·人工智能·spring
小马爱打代码2 小时前
Spring AI:DeepSeek 整合 RAG 增强检索: 实现与 PDF 对话
人工智能·spring·pdf
小马爱打代码2 小时前
Spring AI:提取 txt、Json、Markdown、Html、Pdf 文件数据,转换为 Document 文档
人工智能·spring·json
code_weic2 小时前
Java AI开发框架 - LangChain4J学习笔记
java·人工智能·ai·langchain
wh_cxy2 小时前
Spring 的本地消息
java