依赖注入(DI注入)
向一个类中传递数据的方法有几种
(1)set方法
(2)构造方法
依赖注入描述了在容器中建立bean与bean之间依赖关系的过程,bean分为两类
(1)引用类型(类)
(2)简单类型(基本数据类型与String)
依赖注入方式
(1)setter注入
(2)构造器注入
代码实现
①setter注入-引用类型
在bean中定义引用类型属性并提供可访问的set方法

1 public class BookServiceImpl implements BookService { 2 private BookDao bookDao; 3 4 public void setBookDao(BookDao bookDao) { 5 this.bookDao = bookDao; 6 } 7 }
在配置中使用property小钱ref属性注入引用类型对象

1 <bean id="bookService" class="org.wcx.service.impl.BookServiceImpl"> 2 <property name="bookDao " ref="bookDao"/> 3 </bean> 4 <bean id="bookDao" class="org.wcx.service.impl.BookDaoImpl"/>
②setter注入-简单类型
在bean中定义简单类型并提供可访问的set方法

1 public class BookServiceImpl implements BookService { 2 3 private int num; 4 private String string; 5 6 public void setNum(int num) { 7 this.num = num; 8 } 9 10 public void setString(String string) { 11 this.string = string; 12 } 13 14 }
配置中使用property标签value属性注入简单类型属性

1 <bean id="bookService" class="org.wcx.service.impl.BookServiceImpl"> 2 <property name="num" value="10"/> 3 <property name="string" value="sss"/> 4 </bean>
③构造器注入-引用类型
在bean中定义引用类型并提供可方位的构造方法

1 public class BookServiceImpl implements BookService { 2 private BookDao bookDao; 3 4 public BookServiceImpl(BookDao bookDao) { 5 this.bookDao = bookDao; 6 } 7 }
在配置中使用construction-arg标签ref属性注入引用型对象

1 <bean id="bookService" class="org.wcx.service.impl.BookServiceImpl"> 2 <constructor-arg name="bookDao" ref="bookDao" /> 3 <!-- name是构造函数里形参的名字--> 4 </bean> 5 <bean id="bookDao" class="org.wcx.service.impl.BookDaoImpl"/>
④构造器注入-简单类型
在bean中定义简单类型属性并提供可访问的构造方法

1 public class BookServiceImpl implements BookService { 2 private int num; 3 private String s; 4 5 public BookServiceImpl(int num, String s) { 6 this.num = num; 7 this.s = s; 8 } 9 10 }
在配置中使用construction-arg标签value属性注入简单型属性

<bean id="bookService" class="org.wcx.service.impl.BookServiceImpl">
<constructor-arg name="num" value="10"/>
<constructor-arg name="s" value="sss"/>
</bean>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现