答案 0 :(得分:9)
简短回答:依赖注入是一种设计模式,而@autowired是一种实现它的机制。
DI的想法是,不是你的对象创建它需要的对象(比如通过使用new来实例化它),这个需要的对象 - 依赖 - 通常使用构造函数或setter方法传递给你的对象。如果您自动装配,那么您将注入依赖性。在这种情况下,Spring使用反射来完成这项工作,所以你没有使用构造函数或setter方法,但你仍然在注入依赖项。
回答问题2,这是你的选择。就个人而言,我发现XML配置文件很麻烦,我会尽可能地使用注释。无论采用哪种方式,您都可以完成任何配置。