spring学习笔记(二)——依赖注入(DI)

Spring依赖注入

当一个对象其中有一属性存在其他对象的变量时,即存在依赖。依赖注入可以简单的理解为向类里面的属性设置值
spring依赖注入的方式有多种,在spring框架中我们着重掌握前两种:

  • set方法注入
  • 带参构造器注入
  • p名称空间注入
  • 自动装配
  • 注解

使用set方法注入属性

  • 第一步:以service和dao层的依赖关系为例,假设有一个类UserService,其中需要实例UserDao对象,那么我们可以为UserDao设置set方法
public class UserService {
    private UserDao userdao;
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;       
    }
    public void function() {
        userDao.function();
    }
}
  • 第二步:编写spring配置文件applicationContext.xml,通过property节点给属性赋值
  <!--配置bean,随后交由spring管理-->
    <bean id="userDao" class="UserDao"/>

    <!--创建userService对象-->
    <bean id="userService" class="UserService">
        <property name="userDao" ref="userDao"/>
    </bean>

使用构造器注入

这种注入方式是指在带有参数的构造函数注入,需要传参

public class UserService {
    private userDao userDao;
    public UserService(UserDao userDao) {
        this.userDao = userDao;
        System.out.println("构造方法调用userDao");
    }
}

配置applicationContext.xml文件

    <!--创建userDao对象-->
    <bean id="userDao" class="UserDao"/>

    <!--创建userService对象-->
    <bean id="userService" class="UserService">
        <!--使用有参构造注入属性-->
        <constructor-arg index="0" name="userDao" type="UserDao" ref="userDao"></constructor-arg>
    </bean>

IOC和DI区别

(1)IOC: 控制反转,把对象创建交给spring进行配置
(2)DI: 依赖注入,向类里面的属性中设置值
(3)关系:依赖注入不能单独存在,需要在ioc基础之上完成操作

结语

通过以上总结对spring依赖注入的两种方式有所了解,这是我们接下来学习自动装配和注解的前提,基础永远是构建上层建筑的基石,共勉。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容