当前位置: 首页 > ai >正文

spring4第3课-ioc控制反转-详解依赖注入的4种方式

1,属性注入;

2,构造函数注入;(通过类型;通过索引;联合使用)

3,工厂方法注入;(非静态工厂,静态工厂)

4,泛型依赖注入;(Spring4 整合 Hibernate4 的时候顺带讲)

详细解释

1,属性注入;

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--定义2个bean:lisi--><bean id="lisi" class="com.java1234.service.Lisi"></bean><bean id="javaWork" class="com.java1234.service.JavaWork"><property name="tester" ref="lisi"></property></bean>
</beans>

   这里就是一种对象注入  <property name="tester" ref="lisi"></property>

   如果对象有age的属性,对value的设置10就是属性注入,代码如下:

<bean id="people2" class="com.java1234.entity.People"> <property name="id" value="1"></property><property name="name" value="张三"></property><property name="age" value="11"></property>
</bean>

2,构造函数注入;(通过字段类型;通过索引(也就是字段顺序);联合使用(字段顺序+字段类型))

<!-- 构造方法注入-字段类型-->
<bean id="people3" class="com.java1234.entity.People"><constructor-arg type="int" value="2"></constructor-arg><constructor-arg type="String" value="李四"></constructor-arg><constructor-arg type="int" value="22"></constructor-arg>
</bean>
<!-- 构造方法注入-字段顺序0,1,2 -->
<bean id="people4" class="com.java1234.entity.People"><constructor-arg index="0" value="3"></constructor-arg><constructor-arg index="1" value="王五"></constructor-arg><constructor-arg index="2" value="55"></constructor-arg>
</bean>
<!-- 构造方法注入 ,字段顺序+字段类型-->
<bean id="people5" class="com.java1234.entity.People"><constructor-arg index="0" type="int" value="4"></constructor-arg><constructor-arg index="1" type="String" value="招六"></constructor-arg><constructor-arg index="2" type="int" value="66"></constructor-arg>
</bean>

3,工厂方法注入;(非静态工厂,静态工厂)

3.1)非静态工厂:

   <bean id="peopleFactory" class="com.java1234.factory.PeopleFactory"></bean>
   <bean id="people7" factory-bean="peopleFactory" factory-method="createPeople"></bean>

      <! -- 上面的peopleFactory是工厂bean,createPeople是工厂bean的方法-->

3.2)静态工厂:( 由static修饰(类PeopleFactory2的)createPeople方法,又因为是static类型,可以直接使用类型class,可以不需要像非静态工厂那样还使用factory-bean)

<bean id="people8" class="com.java1234.factory.PeopleFactory2" factory-method="createPeople"></bean>

4,泛型依赖注入;(Spring4 的新功能 )

http://www.xdnf.cn/news/9521.html

相关文章:

  • 独立站引流新策略:AB站投放法助力突破瓶颈
  • JavaScript 中,require 和 import
  • zabbix6.x 监控mysql数据库
  • 【深度剖析】义齿定制行业数字化转型模式创新研究(上篇:行业概况)
  • Vulnhub_Zico2_wp
  • LNMP 架构部署
  • 《基于AIGC的智能化多栈开发新模式》研究报告重磅发布! ——AI重塑软件工程,多栈开发引领未来
  • 腾讯混元开源语音数字人模型 HunyuanVideo-Avatar:开启数字人 “能说会唱” 新时代
  • 上海AI Lab 提出ULTRAIF方法,通过两阶段过程合成高质量指令遵循数据集,代码与数据集完全开源!
  • 基于GA遗传优化的FIR滤波器幅频相频均衡补偿算法matlab仿真
  • 网页前端开发(基础进阶1)
  • KONG根据请求参数限流
  • 线代第四章线性方程组第四节:方程组解的结构
  • 使用java实现word转pdf,html以及rtf转word,pdf,html
  • DeepSeek实战:构建智能问答系统的完整指南
  • Android学习之定时任务
  • 【组件】翻牌器效果
  • More SQL(Focus Subqueries、Join)
  • 如何优化Elasticsearch的搜索性能?
  • 登高架设作业考试中常见的安全规范考点是什么?
  • DBeaver 连接 OceanBase Oracle 租户
  • react-native的token认证流程
  • AI觉醒前兆,ChatGPT o3模型存在抗拒关闭行为
  • 《吾心悔已》---李劭卓2025.5.28
  • 漫画Android:View是怎么绘制出来的?
  • MySQL数据库(一)
  • 华为OD机试真题——最佳的出牌方法(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 嵌入式开发学习(第二阶段 C语言笔记)
  • 电缆护层保护器的优势
  • OpenWrt 插件安装失败的常见问题和解决方法