spring注入bean的3种方式
1.属性注入(DI依赖注入)**
public class SysCollectionExtServiceTest extends AbstractSimpleTest {
@Autowired
private SysCollectionExtService sysCollectionExtService;
@Test
public void testTuck() {
}
}
优点:简单整洁
缺点:循环依赖注入问题
2.Setter方法注入*
public class SysCollectionExtServiceTest extends AbstractSimpleTest {
private SysCollectionExtService sysCollectionExtService;
@Autowired
public void setSysCollectionExtService(SysCollectionExtService sysCollectionExtService) {
this.sysCollectionExtService = sysCollectionExtService;
}
@Test
public void testTuck() {
}
}
优点:依赖注入的话,使用的时候会报错
缺点:不简洁,注入太多,显得当前类过于臃肿
提醒:一个类过于太多注入操作,违背了 单一职责原则
3.构造器注入***
public class SysCollectionExtServiceTest extends AbstractSimpleTest {
private SysCollectionExtService sysCollectionExtService;
@Autowired
public SysCollectionExtServiceTest(SysCollectionExtService sysCollectionExtService) {
this.sysCollectionExtService = sysCollectionExtService;
}
@Test
public void testTuck() {
}
}
优点:服务启动,如果存在循环依赖,会报错
缺点:不整洁,注入麻烦
但是4.x以后版本推荐此类注入方式
本文来自博客园,作者:土木转行的人才,转载请注明原文链接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现