关于构造注入bean的一些见解
我关注的类似的spring的框架solon,发起了 是否有必要增加构造函数注入https://gitee.com/noear/solon/issues/I9LLT3#note_27456594
的讨论,我觉得这个solon还挺好用的,生态相对完整(主要是我服务器的资源小)
回到主题,什么是构造注入:
public class MyServiceImpl implements MyService {
private final UserService userService;
@AutoWrited
public MyServiceImpl(UserService userService) {
this.userService = userService;
}
}
上面的代码就是构造注入。网上又是看到一种说法:
spring构造注入哪套,提升性能,
官方推荐
,经常翻spring官网的朋友都知道,没有那么花里胡哨,跟不存在的
以我练习时长两年半
x2 的开发经验总结:
实际开发实践中发现,某些业务开发bean注入是存在依赖循环的。构造注入让开发变得不再灵活,要明确bean是注入顺序,否则初始化失败。
以我接手的spring4老项目发现,一路升级到spring5最新版,3年变迁,发现还是弃用的构造注入好,因为不灵活,bean太多,一不小心就突然循环依赖,变成手动注入(
@PostConstruct
、@Init
中初始化)。构造注入却变成了后面增加功能埋坑(直接使用已有的bean实现业务逻辑反复调用)。项目成员更替,最后还是@AutoWrited
香。
我看群里有人提到构造注入简洁,可能这位朋友没有接触过大项目、老项目(5年以及十几年)。经常维护这些项目的朋友都知道,这些项目的特点是一个service中需要注入
十几
、几十
个bean,并不简洁。如果朋友接触的项目活不了这么久,就当我没说。