为什么需要依赖注入? ServiceUser是组件,在编写者之外的环境内被使用,且使用者不能改变其源代码. ServiceProvider是服务,其类似于ServiceUser,都要被其他应用使用,不同是ServiceProvider会被用于非本地环境,需要对应不同环境. 普通的ServiceUser来负责直接创建所需Service实现的实例方法.拥有以下的局限 在不同的环境下,ServiceProvider是千差万别的(数据库,临时文件,内存). 所以,不能将ServiceUser作为组件发布