登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
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
多种
类型
注入
方式
相关帖子
拒绝“能跑就行“:为 AngularJS 1.x 老项目注入现代开发体验
Maui 实践:Go 接口以类型之名,给 runtime 传递方法参数
IPv6地址获取方式与CH394Q获取全球唯一地址的实现
Copilot 命令行使用方式介绍(npm)
Java 创建对象的 6 种方式 + 底层原理(面试必考)
低代码 + AI = 对话方式生成UI
C语言基本数据类型与类型提升机制
MyBatis-plus拓展之字段类型处理器、自动填充和乐观锁等(完结)
vxe-table 给单元格加样式的方式详解,支持 style 和 className 的方式给单元格加样式
通俗易懂深入浅出OSPF-LSA类型讲解
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
拒绝“能跑就行“:为 AngularJS 1.x 老项目注入现代开发体验
1
44
硫辨姥
2026-02-27
业界
Maui 实践:Go 接口以类型之名,给 runtime 传递方法参数
1
839
寂傧
2026-03-02
业界
IPv6地址获取方式与CH394Q获取全球唯一地址的实现
3
265
米榜饴
2026-03-04
业界
Copilot 命令行使用方式介绍(npm)
0
273
冈欤寨
2026-03-05
安全
Java 创建对象的 6 种方式 + 底层原理(面试必考)
2
1012
高小雨
2026-03-05
业界
低代码 + AI = 对话方式生成UI
1
320
屠焘
2026-03-09
安全
C语言基本数据类型与类型提升机制
0
32
迭婵椟
2026-03-11
业界
MyBatis-plus拓展之字段类型处理器、自动填充和乐观锁等(完结)
0
478
赖琳芳
2026-03-12
代码
vxe-table 给单元格加样式的方式详解,支持 style 和 className 的方式给单元格加样式
0
29
役魅肋
2026-03-13
业界
通俗易懂深入浅出OSPF-LSA类型讲解
0
689
宛蛲
2026-03-20
回复
(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
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
轮达
2026-2-10 00:20:12
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
赐度虻
2026-2-10 19:39:38
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
过来提前占个楼
廖彗云
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
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
致掣
2026-3-11 08:08:30
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
收藏一下 不知道什么时候能用到
高级模式
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
韶又彤
9912
7
宋子
9878
8
荪俗
9016
9
闰咄阅
9995
10
刎唇
9995
查看更多
今日好文热榜
630
AI编程时代,35岁以上程序员将何去何从?
826
[Refactor]CPP Learn Data Day 1
0
Block Copy 的内存布局详解
613
把 Flask 搬进 ESP32,高中生自研嵌入式 We
1
渐得如意智能自动化办公平台——定义属于你
883
[AI/Agent/社交] AI Agent社交网络产品:Mo
520
C++协程入门
284
TCSSOFTDEPTCOPY.zip Can download source
800
Vue3 + Iframe 实战:打造企业级流程配置中
823
“你用AI,那我也会用AI,我还要你干什么?
621
自感痕迹论:先验意义场域与经验痕迹内外
7
一道KMP统考真题彻底讲透:nextval与滑动距
6
一道KMP统考真题彻底讲透:nextval与滑动距
741
从 Clubhouse 的崛起与陨落,看语聊房 RTC
244
老马失前蹄,竟然在数据库外键上翻车了,重
8
老马失前蹄,竟然在数据库外键上翻车了,重
6
老马失前蹄,竟然在数据库外键上翻车了,重
6
老马失前蹄,竟然在数据库外键上翻车了,重
8
老马失前蹄,竟然在数据库外键上翻车了,重
7
老马失前蹄,竟然在数据库外键上翻车了,重