登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
spring6-多种类型的注入方式
spring6-多种类型的注入方式
[ 复制链接 ]
倡粤
2026-2-2 16:05:05
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
OCP原则
ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。
依赖倒置原则(DIP)
什么是依赖倒置原则
核心是面向接口编程、面向抽象编程, 不是面向具体编程。
依赖倒置原则的目的
降低耦合度,提高扩展力
什么是控制反转
控制反转:Ioc(Inversion of Controll),一种编程思想、设计模式。为了降低程序耦合度
反转有两点:
不在程序中采用硬编码的方式new对象,把创建对象交给别人(UserService userService = new UserServiceImplForMysql())。
不在程序中采用硬编码的方式维护对象关系。
spring框架
spring实现了Ioc,因此可以创建和维护对象见的关系。
控制反转实现方式主要有
依赖注入(Dependency Injection DI)
依赖注入的方式有以下方式:
Set注入(执行Set方法赋值)
构造方法注入(执行构造方法赋值)
依赖注入中的“依赖”、“注入”的含义
依赖:A对象和B对象的关系
注入:是一种手段,通过这种手段让A和B产生关系。
依赖注入的实现方式有:set注入和构造方法注入。
set注入
配置文件配置bean
<bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean>
复制代码
在类中写set方法
package com.ali.service;
import com.ali.dao.UserDao;
public class UserService {
private UserDao userDao;
// set注入需要提供一个set方法,方法名以set开头,spring容器调用这个set方法注入UserDao
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void saveUser(){
userDao.insertUser();
}
}
复制代码
这样即可注入成功。
注入外部bean
<bean id="orderDao" />
<bean id="orderService" >
<property name="orderDao" ref="orderDao"/>
</bean>
复制代码
注入内部bean
<bean id="orderDao" />
<bean id="orderService" >
<property name="orderDao" ref="orderDao"/>
</bean>
复制代码
注入简单类型
<bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>
复制代码
实际开发中,一般不会吧Date类型当作简单类型,会使用ref来注入Date类型
级联属性赋值
<bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean><bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>
复制代码
注入数组
<bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> <bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> <bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> <bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> 吃<bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>喝 <bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> <bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> <bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean><bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>
复制代码
注入List和Set类型
<bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> 张三<bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>里斯<bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>詹姆思 <bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> <bean id="orderDao" />
<bean id="orderService" >
<property name="orderDao" ref="orderDao"/>
</bean> 北京<bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>上海<bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>广州 <bean id="orderDao" />
<bean id="orderService" >
<property name="orderDao" ref="orderDao"/>
</bean>
复制代码
注入Map集合
<bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> <bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean>
复制代码
注入Properties类型
<bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> v1<bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>v2<bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>v3 <bean id="orderDao" />
<bean id="orderService" >
<property name="orderDao" ref="orderDao"/>
</bean>
复制代码
注入null和空字符串
<bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean> <bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean><bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>
复制代码
注入特殊字符串
<bean id="userDao" >
</bean>
<bean id="userService" >
<property name="userDao" ref="userDao"/>
</bean><bean id="userBean" >
<property name="name" value="张三"></property>
<property name="age" value="30"></property>
<property name="password" value="123456"></property>
</bean>
复制代码
构造注入
配置文件配置bean
[code]
spring6
多种
类型
注入
方式
相关帖子
Maui 实践:Go 接口以类型之名,给 runtime 传递方法参数
IPv6地址获取方式与CH394Q获取全球唯一地址的实现
Copilot 命令行使用方式介绍(npm)
Java 创建对象的 6 种方式 + 底层原理(面试必考)
低代码 + AI = 对话方式生成UI
C语言基本数据类型与类型提升机制
MyBatis-plus拓展之字段类型处理器、自动填充和乐观锁等(完结)
vxe-table 给单元格加样式的方式详解,支持 style 和 className 的方式给单元格加样式
通俗易懂深入浅出OSPF-LSA类型讲解
openclaw skills 安装 的三种方式:命令安装,手动下载安装,web ui安装
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
Maui 实践:Go 接口以类型之名,给 runtime 传递方法参数
1
844
寂傧
2026-03-02
业界
IPv6地址获取方式与CH394Q获取全球唯一地址的实现
3
267
米榜饴
2026-03-04
业界
Copilot 命令行使用方式介绍(npm)
0
273
冈欤寨
2026-03-05
安全
Java 创建对象的 6 种方式 + 底层原理(面试必考)
2
1015
高小雨
2026-03-05
业界
低代码 + AI = 对话方式生成UI
1
327
屠焘
2026-03-09
安全
C语言基本数据类型与类型提升机制
0
41
迭婵椟
2026-03-11
业界
MyBatis-plus拓展之字段类型处理器、自动填充和乐观锁等(完结)
0
482
赖琳芳
2026-03-12
代码
vxe-table 给单元格加样式的方式详解,支持 style 和 className 的方式给单元格加样式
0
34
役魅肋
2026-03-13
业界
通俗易懂深入浅出OSPF-LSA类型讲解
0
698
宛蛲
2026-03-20
安全
openclaw skills 安装 的三种方式:命令安装,手动下载安装,web ui安装
0
899
株兆凝
2026-03-26
回复
(13)
嗣伐
2026-2-5 08:56:13
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
前排留名,哈哈哈
骆贵
2026-2-8 06:10:13
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
这个好,看起来很实用
庞环
2026-2-8 16:05:49
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享
敖雨燕
2026-2-9 02:05:33
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,下载保存了,貌似很强大
都淑贞
2026-2-9 23:20:11
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
收藏一下 不知道什么时候能用到
轮达
2026-2-10 00:20:12
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
赐度虻
2026-2-10 19:39:38
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
过来提前占个楼
廖彗云
2026-2-11 03:28:14
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
篙菠
2026-2-13 20:06:22
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
用心讨论,共获提升!
翁真如
2026-2-23 08:35:30
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
用心讨论,共获提升!
阕阵闲
2026-2-23 11:14:39
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
筒濂
2026-3-3 03:21:26
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢发布原创作品,程序园因你更精彩
致掣
2026-3-11 08:08:30
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
教程
代码
科技
软件
程序
签约作者
程序园优秀签约作者
发帖
倡粤
2026-3-11 08:08:30
关注
0
粉丝关注
22
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9522
6
韶又彤
9916
7
宋子
9878
8
荪俗
9016
9
闰咄阅
9995
10
蓬森莉
9870
查看更多
今日好文热榜
469
SpringCloud进阶--Seata与分布式事务
986
大模型私有化部署指南:从“一键安装”到“
624
大模型私有化部署指南:从“一键安装”到“
883
SpringCloud进阶--Seata与分布式事务
170
SpringCloud进阶--Seata与分布式事务
784
Oracle SQL经典练习50题 | 附答案
203
gitru:一个由 Rust 打造的零依赖 Git 提交
929
gitru:一个由 Rust 打造的零依赖 Git 提交
266
gitru:一个由 Rust 打造的零依赖 Git 提交
853
gitru:一个由 Rust 打造的零依赖 Git 提交
424
gitru:一个由 Rust 打造的零依赖 Git 提交
692
ESP32S3 USB MSC 调试全过程记录
637
瑞芯微工业级芯加持,正点原子RK3562J开发
54
gitru:一个由 Rust 打造的零依赖 Git 提交
784
营销自动化数据驱动 - 多源数据 OLAP 架构
532
C# .NET 周刊|2026年3月1期
148
【GUI-Agent】阶跃星辰 GUI-MCP 解读---(5)
867
LangChain教程-3、Langchian进阶
4
【GUI-Agent】阶跃星辰 GUI-MCP 解读---(5)
727
Ubuntu 部署Harbor (Docker版)