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

Spring关于依赖注入的几种方式和Spring配置文件的标签

  • Spring关于依赖注入的几种方式和Spring配置文件的标签

    • 构造器注入

      • 通过构造方法和set方法注入,只需要将set方法改造成带参的构造方法,然后在<constructor-arg>标签通过ref方法注入要注入的bean对象标签。

        • xml文件配置

        • Teacher类

        • Student类

        • 测试类和结果

    • 自动专配

      • 通过autowire属性来指明,使用后就不需要我们在bean.xml文件去配置。autowire有两个属性一个是byname,另外一个bytype。

        • byname的方式根据set方法的方法名和要注入bean对象的id名要一致。

          • Teacher类

          • Spring配置文件

          • 测试类和运行结果

          • Students

        • 根据属性的数据类型自动装配。Spring容器会查找与属性类型匹配的唯一Bean,并将其注入到对应的属性中。如果有多个相同类型的Bean,则装配失败。即会在bean里面查找与set方法的参数类型一样的对象

          • xml配置文件

          • Students类

          • teacher类

          • 测试类和结果

    • 基本数据的注入

      • 如果注入类似Interger或Spring的方法,可直接通过在<property>标签通过value指定值有set方法直接注入。

        • spring配置文件

        • Student类

        • 测试结果

      • List集合的注入方式

        • 类似 <bean id="enrolledServiceImp" class="com.frank.service.EnrolledServiceImp">
          <property name="list">
          <list>
          <value>blue</value>
          <value>green</value>
          <value>yellow</value>
          </list> </property>
          </bean>

          • Spring配置文件

          • 测试结果

          • 学生类

        • 如果我注入的是个list,但是list里面不是普通的字符串,而是一个类的引用,那又该如何实现呢?

          • 实现方式:<property name="listDao">
            <list> <ref bean="a1"></ref>
            <ref bean="a2"></ref>
            <ref bean="a3"></ref> </list> </property> </bean> <bean id="a1" class="com.frank.dao.EnrolledDao"></bean> <bean id="a2" class="com.frank.dao.EnrolledDao"></bean> <bean id="a3" class="com.frank.dao.EnrolledDao"></bean>

      • Map集合的注入方式

        • 同上与list配置文件很类似

http://www.dtcms.com/a/291037.html

相关文章:

  • 大模型后训练——SFT实践
  • (SAM)Segment Anything论文精读(逐段解析)
  • 磁悬浮轴承振动的智能克星:自适应陷波器设计与DSP实现全解析
  • 有关Spring的总结
  • 解决 Ant Design v5.26.5 与 React 19.0.0 的兼容性问题
  • CMake与catkin_make的find_package()命令使用说明
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——1. 启航:你的第一个工业视觉应用
  • C/C++ 详谈结构体大小计算(内存对齐)
  • 基于 HAProxy 搭建 EMQ X 集群
  • vscode创建vue项目报错
  • 如何判断自己的电脑或主机是否支持DDR5内存?
  • Android 默认图库播放视频没有自动循环功能,如何添加2
  • MVC模式
  • vcruntime140_1.dll文件丢失?终极修复指南:从错误分析到修复全流程
  • Ubuntu 22.04 使用 Docker 安装 Redis 5 (安装包形式)
  • linux定时器使用
  • AD域控制器虚拟化的安全加固最佳实践
  • 从IR到DS的转化过程中,如何确保各阶段需求不偏离用户原始场景?有哪些验证方法?
  • 吴恩达 机器学习cs229-学习笔记-更新中
  • 动静态库原理与实战详解
  • Linux 721 创建实现镜像的逻辑卷
  • 网站域名备案和服务器有关系吗
  • 《电⼦元器件零基础⼊⻔》
  • 汽车售后诊断仪DoIP和CANBus诊断指令分析
  • Linux的磁盘存储管理实操——(中)——逻辑卷管理实战
  • Ubuntu 22.04编译安装Nginx 1.28
  • Docker实践:使用Docker部署blog轻量级博客系统
  • 我的NAS进化史:用1Panel和内网穿透把零配件变成远程中枢
  • 超详细解析:Java装箱与拆箱(附完整数据类型清单)
  • 在 HTTP GET 请求中传递参数有两种标准方式