Java依赖注入的方式是什么

发布时间:2022-06-22 13:40:08 作者:iii
来源:亿速云 阅读:137

这篇“Java依赖注入的方式是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java依赖注入的方式是什么”文章吧。

Spring中的三种依赖注入方式

// Field Injection
@Service("uploadService")
public class UploadServiceImpl extends ServiceImpl<UploadDao, UploadEntity> implements UploadService {
    @Autowired
    private UploadDao uploadDao;
}
// Constructor Injection
@Service("uploadService")
public class UploadServiceImpl extends ServiceImpl<UploadDao, UploadEntity> implements UploadService {
    private UploadDao uploadDao;
	UploadServiceImpl(UploadDao uploadDao){
		this.uploadDao = uploadDao;
	}
}
// Setter Injection
@Service("uploadService")
public class UploadServiceImpl extends ServiceImpl<UploadDao, UploadEntity> implements UploadService {
    private UploadDao uploadDao;
	@Autowired
	public void setUploadDao(UploadDao uploadDao){
		this.uploadDao =uploadDao
	}
}

1.是否进行循环依赖检测

可能遇到的问题

循环依赖报错: 当服务A需要用到服务B时,并且服务B又需要用到服务A时,Spring在初始化创建Bean时,不知道应该先创建哪一个,就会出现该报错。

This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example

class ServerA{
	@Autowired
	private ServerB b;
}
class ServerB{
	@Autowired
	private ServerA a;
}

如果使用构造方式注入,能够精准的提醒你是哪两个类产生了循环依赖 .异常报错信息能够迅速定位问题:

Java依赖注入的方式是什么

循环报错解决办法是使用 @Lazy注解 ,对任意一个需要被注入Bean添加该注解,表示延迟创建即可。

class ServerA{
	@Autowired
	@Lazy
	private ServerB b;
}
class ServerB{
	@Autowired
	@Lazy
	private ServerA a;
}

以上就是关于“Java依赖注入的方式是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

推荐阅读:
  1. php依赖注入有几种方式
  2. Spring依赖注入的三种方式

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:PyTorch中torch.utils.data.DataLoader怎么使用

下一篇:package.json版本号符号^和~前缀的区别是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》