java依赖注入简单理解,实现依赖注入的方式有哪些
目录
弹簧中的三种依赖注入方式可能遇到的问题
Spring中的三种依赖注入方式
现场注射:@自动连线注解的一大使用场景就是现场注入施工人员注入:构造器注入,是我们日常最为推荐的一种使用方式定型注射:定型注射也会用到@自动连线注解,但使用方式与现场注射有所不同,现场注射是用在成员变量上,而定型剂注射的时候,是用在成员变量的作曲者函数上//字段注入@Service(uploadService )公共类上传服务Impl扩展ServiceImplUploadDao,UploadEntity实现uploadService { @ Autowired private upload Dao upload Dao;}//构造函数注入@Service(uploadService )公共类上传服务Impl扩展ServiceImplUploadDao,UploadEntity实现uploadService { private upload Dao upload Dao;UploadServiceImpl(UploadDao UploadDao){ this。UploadDao=UploadDao}}//Setter注入@Service(uploadService )公共类上传服务Impl扩展ServiceImplUploadDao,UploadEntity实现uploadService { private upload Dao upload Dao;@ Autowiredpublic void setUploadDao(UploadDao UploadDao){ this。UploadDao=UploadDao } } 1 .是否进行循环依赖检测
现场注射:不检测构造函数注入:自动检测作曲者注入:不检测
可能遇到的问题
循环依赖报错: 当服务英语字母表中第一个字母需要用到服务仓库时,并且服务仓库又需要用到服务英语字母表中第一个字母时,春天在初始化创建豆时,不知道应该先创建哪一个,就会出现该报错。
这通常是过于急切的类型匹配的结果-例如,考虑使用" getBeanNamesOfType "并关闭" allowEagerInit "标志
class ServerA { @ autowired private ServerB b;} class ServerB { @ autowiredprivateservera a;}如果使用构造方式注入,能够精准的提醒你是哪两个类产生了循环依赖。异常报错信息能够迅速定位问题:
循环报错解决办法是使用@懒注解,对任意一个需要被注入豆添加该注解,表示延迟创建即可。
class ServerA { @ auto wired @ lazy private server b b;} class ServerB { @ auto wired @ lazy private ServerA a;}以上就是爪哇详细讲解依赖注入的方式的详细内容,更多关于爪哇依赖注入的资料请关注盛行信息技术其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。