Spring依赖注入选择题及答案解析

版权申诉
5星 · 超过95%的资源 4 下载量 92 浏览量 更新于2024-09-10 收藏 52KB DOC 举报
"Spring选择题及答案文档包含了关于Spring框架依赖注入(DI)的实践题目。文档中的部分内容涉及了如何通过XML配置实现Spring的DI,包括接口注入、setter方法注入和构造器注入等方法。此外,还展示了如何通过XML配置将`DeptDAO`的实例注入到`DeptService`中。" 在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种设计模式,用于减少代码之间的耦合,提高可测试性和可维护性。它允许组件之间的依赖关系由Spring容器来管理,而不是由组件自己来创建和查找依赖。题目中提到了几种在Spring中实现DI的方式: 1. 接口注入:Spring可以通过实现特定的接口来注入依赖,但这不是Spring框架内建的DI方式,而是一种常见的设计模式。 2. 上下文注入:这可能是指通过Spring上下文(ApplicationContext)来获取并注入依赖,但通常我们指的是setter方法或构造器注入。 3. Setter方法注入:这是Spring中最常见的DI方式,通过调用对象的setter方法来设置依赖的实例。 4. 构造方法注入:当对象创建时,Spring可以通过构造函数参数来注入依赖。 在提供的代码示例中,`DeptService`类有一个`DeptDAO`类型的属性`deptDAO`,并且有对应的setter方法来设置这个属性。`applicationContext.xml`是Spring的配置文件,其中定义了两个bean:`dao`(对应`DeptDAOImpl`)和`deptService`(对应`DeptService`)。 为了通过Spring容器将`DeptDAO`的实例注入到`DeptService`的`deptDAO`属性中,我们需要在`deptService` bean的配置中添加一个`<property>`标签,指定属性名并引用`dao` bean。因此,正确的插入行代码应该是: ```xml <bean id="deptService" class="com.tarena.service.DeptService"> <property name="deptDAO" ref="dao"/> </bean> ``` 这段代码告诉Spring容器,当创建`deptService` bean时,应使用`dao` bean的引用来设置`deptDAO`属性。这样,`DeptService`无需自行创建`DeptDAO`实例,而是依赖于Spring容器的管理,实现了依赖注入。