登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
spring6-多种类型的注入方式
spring6-多种类型的注入方式
[ 复制链接 ]
倡粤
4 小时前
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
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
多种
类型
注入
方式
相关帖子
FastAPI依赖注入深度指南:从基础依赖到预处理与后处理的艺术
不同Django服务器和部署方式的性能调研
一次内网开发环境访问方式的改进实践:使用 FRP 替代远程桌面
c#实现包裹扣面单的几种方式
Apache Struts2 OGNL RCE注入
金额计算字段类型用Long,还是BigDecimal更好?
TINYINT(1) 类型的字段,明明数据存的是 2,为什么查出来是 true
RPC 代理远程注入dll获得shell
从HTML注入到CSRF:一次漏洞组合拳实战
Java中的数据类型
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
FastAPI依赖注入深度指南:从基础依赖到预处理与后处理的艺术
12
714
绂染
2026-01-09
业界
不同Django服务器和部署方式的性能调研
13
1003
鞭氅
2026-01-13
业界
一次内网开发环境访问方式的改进实践:使用 FRP 替代远程桌面
13
871
致掣
2026-01-14
业界
c#实现包裹扣面单的几种方式
2
7
马璞玉
2026-01-15
业界
Apache Struts2 OGNL RCE注入
7
404
缢闸
2026-01-16
业界
金额计算字段类型用Long,还是BigDecimal更好?
0
1
裴竹悦
2026-01-18
业界
TINYINT(1) 类型的字段,明明数据存的是 2,为什么查出来是 true
5
221
国语诗
2026-01-19
安全
RPC 代理远程注入dll获得shell
3
502
命煦砌
2026-01-26
安全
从HTML注入到CSRF:一次漏洞组合拳实战
0
3
蝙俚
2026-01-29
安全
Java中的数据类型
0
813
赖娅闺
2026-02-02
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
倡粤
4 小时前
关注
0
粉丝关注
17
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
宋子
9939
6
韶又彤
9952
7
闰咄阅
9993
8
刎唇
9995
9
蓬森莉
9921
10
俞瑛瑶
9998
查看更多
今日好文热榜
530
C++算法算法训练第十二天
910
语言开发随笔2
876
Ivanti EPMM RCE CVE-2026-1340/1281完整分
741
城市智能体:宜昌点军区算力供应链平台的区
248
微软发布Maia200,它也开始与英伟达谷歌掰
921
微软发布Maia200,它也开始与英伟达谷歌掰
470
选型指南】医用控温仪显示屏如何兼顾IEC606
457
IDEA 终于也能爽用 Claude Code 了!!
855
GIM 2.0 发布:真正让 AI 提交消息可定制、
172
C# 设置 Word 文档背景颜色/背景图
842
妙手ERP荣膺TikTok Shop 2025 H1“优质招商
159
题解:P15049 [UOI 2022 II Stage] 图 2
975
vue 甘特图 vxe-gantt 自定义任务条插槽模
239
Qt 技巧笔记(四)QVector 的底层原理与高
713
零门槛搭建部署 OpenClaw/Moltbot/Clawdbot
762
如何保障分布式IM聊天系统的消息可靠性(即
985
【面试题】MySQL 中 count(*)、count(1) 和
546
MWGA让千亿行代码在Web端“复活”!
29
spring6-多种类型的注入方式
661
LLVM Pass快速入门(二):运行第一个pass