
SpringBoot(Spring)中为什么不推荐使用 @Autowired ?
在 Spring/Spring Boot 中,@Autowired
注解用于实现依赖注入(DI),虽然它能简化开发,但在实际项目中并不推荐过度使用,主要原因如下:
1. 与 Spring 容器紧耦合,违背依赖注入的初衷
@Autowired
是 Spring 框架提供的注解,依赖于 Spring 容器的注入机制。如果类中直接使用 @Autowired
标注字段或方法,意味着这个类强耦合了 Spring 容器——脱离 Spring 环境后,这个类无法通过常规方式(如手动 new 实例)正常初始化(依赖无法注入),违背了“依赖注入原本是为了降低耦合”的设计思想。
例如:
public class UserService {
@Autowired // 依赖 Spring 容器注入
private UserDao userDao;
code
}
code
}
// B 依赖 A @Component public class B { @Autowired private A a; }
code
}
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 surfingYu
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果