本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正。

概述

Spring的注入方式一共有三种,如下所示:

  1. 通过set属性进行注入,即通过属性的geter,seter方法进入,如果没有对应的方法,就会报错。
  2. 通过构造函数进行注入,通过类的构造函数进行注入,如果参数个数和构造函数对应不上,也会跑异常。
  3. 通过p标签进行注入,通过引入p标签的方式进行注入。

前提准备

首先有一个Teacher类和Course类,课程需要有对应的教课老师,两个类代码如下:

Teacher类

Course类

通过属性的方式进行注入

在applicatonContext.xml中配置如下:

通过构造函数的方式进行注入

如果在采用构造函数的方式进行注入,则必须有对应的构造函数与之对应,在applicatonContext.xml中配置如下:

采用p标签的方式进行注入

如果需要采用p标签进行注入,则需要引入命名空间,如下所示:

配置如下:

以上三种方式,在创建对象时,都是一样的,如下所示:

集合类型的注入

首先有一个类,属性为集合数据类型,代码如下:

通过Spring的配置文件进行注入,这里采用setters属性方式进行注入,如下所示:

以上测试信息如下所示:

特殊符号处理

在配置applicationContext.xml实现注入时,如果遇到特殊字符,则需要进行转义,或者进行CDATA封装,如下所示:

如字符串: ,则需要配置成:

或者采用CDATA方式,如下所示:

把代码在CDATA中不需要转义:解析器会忽略 CDATA 部分中的所有内容

备注

XML中的非法字符如下:

只有千锤百炼,才能成为好钢。

一个人自学是很艰难的,有可能因为动力不足而中途放弃,如果有可能,可以加几个适合自己的交流群体,比如QQ,微信,社区这些,有不懂的大家一起交流,在看别人问题的时候也可以让自己避免犯同样的错,如果想通过学习群来提高自己的朋友,需要学习资料的,可以私信我【JAVA】获取!

---------------------

作者:Alan.hsiang

依赖注入的三种方式_一起学Spring之三种注入方式及集合类型注入相关推荐

  1. 西门子精智comfort系列面板下载程序的几种方法_参考手册(以太网+PN+USB方式)

    西门子精智comfort系列面板下载程序的几种方法_参考手册(以太网+PN+USB方式) 以太网及 PN/IE 方式下载 下载要求 以太网电缆 交叉线: 对电缆的具体要求最好采用T568B的交叉线序标 ...

  2. spring @Autowire 的注解默认是按类型注入bean

    spring @Autowire 的注解默认是按类型注入bean,比如下面这个类 import javax.sql.DataSource; import org.springframework.bea ...

  3. 查询方式中断方式_【每日“一”题】中断方式

    ↑ 点击上方"计算机考研说"关注我们 1. 某磁盘的转速为10 000转/分,平均寻道时间是6  ms,磁盘传输速率是20  MB/s,磁盘控制器延迟为0.2 ms,读取一个4 K ...

  4. jsp是在html里面嵌入哪种代码?_奶茶店铺用哪种制冰机才合适?

    像在这样炎炎的夏日,温度在直线飙升,茶饮市场最近可谓是异常火,店铺人流量一旦增多,还能保证每一杯饮品的质量吗?还能保证门店的制冰机产量能够跟上需求节奏吗? 奶茶店铺用哪种制冰机才合适?今天,腾工智能商 ...

  5. 分布式锁的三种实现方式_分布式锁的几种实现方式~

    目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题.分布式的CAP理论告诉我们"任何一个分布式系统都无法同时满足一致性(Consistency) ...

  6. mysql 的几种缓存_数据库缓存的几种方式

    数据库缓存的几种方式 引入缓存可以提高性能,但是数据会存在两份,一份在数据库中,一份在缓存中,如果更新其中任何一份会引起数据的不一致,数据的完整性被破坏了,因此,同步数据库和缓存的这两份数据就非常重要 ...

  7. 创建线程的方式_创建线程有几种不同的方式?

    方式可以用来创建线程 1)继承Thread类 2)实现Runnable接口 3)应用程序可以适用Executor框架来创建线程池 实现了Runnable接口这种方式更受欢迎,因为这不需要继承Threa ...

  8. sa结构组网方式_关于 SA/NSA 两种组网模式,你了解多少?-通信/网络-与非网

    之前关于一则 5G 的消息在引起了大家的关注,中移动董事长表示,明年 1 月 1 日起非独立组网5G 手机将不能入网. 这样的新闻在很多自媒体的报道和发酵之下,不知怎么就变成了 NSA 是" ...

  9. 负载均衡的几种方式_负载均衡的几种方式

    负载均衡其实就是任务的分发,使得任务能按照你的预想分配到各个计算单元上,它能提高服务对外的性能,避免单点失效场景.这里要注意的一点是虽说叫负载均衡,但是有时候我们的分配算法就是不是均衡的. 比如配个n ...

最新文章

  1. 深入探讨Python的import机制:实现远程导入模块 | CSDN博文精选
  2. 使用ISA Server 2006的DMZ区保护内网的服务器群
  3. xcode怎么打flutter的release包啊_“打工人”梗刚刚爆红网络,“早安打工人”等已被注册商标...
  4. 2.1.4 进程之间的通信(共享通信、消息传递、管道通信)
  5. jarjar.jar解决jar包版本兼容问题
  6. plsql最多可以存多少_银行内部透露:如果有10万块钱,可以都放在余额宝里吗?存银行是不是更好?...
  7. System.gc()与Object.finalize()的区别
  8. 计算机开机自启文件夹,电脑开机自动打开文件夹解决方法
  9. Android 简介:Android SDK 和开发框架简介
  10. python数字转字符串_python中如何将数字转字符串
  11. 百度分享代码_网销侠:网络营销百问百答之51,百度小程序是什么
  12. 五种 必须了解的CSS选择器
  13. 直播app源码用php做直播平台开发怎么样?
  14. matlab求解微积分
  15. android工厂测试开发,Android开机启动工程测试APK功能开发
  16. 自学Java如何正确入门?
  17. CSU2020:Artwork(并查集)
  18. Flask 和 Django 的比较和选择
  19. 使用电容触摸屏做一个画板--原理(一)
  20. php百度地图接口两点测距,百度地图Api 根据两个坐标点计算距离

热门文章

  1. 《Go语言圣经》学习笔记 第五章函数
  2. Maven pom 文件解释
  3. 深度剖析Service Mesh服务网格新生代Istio
  4. Python异步编程Async/Await
  5. leetcode 24. Swap Nodes in Pairs | 24. 两两交换链表中的节点(Java)
  6. 数据结构与算法(二):堆,大根堆,小根堆,堆排序,比较器详解
  7. 【Servlet】Tomcat公共 / 项目独立的 web.xml / server.xml 文件讲解
  8. C# (逻辑与) ||(逻辑或)优先级辨析
  9. 排序算法 - 面试中的排序算法总结
  10. java深入理解浅拷贝和深拷贝