黑马程序员SSM—Spring学习笔记(4)

目录

一、setter注入(推荐)

1、简单类型

​编辑

2、引用类型

二、构造器注入

1、简单类型

2、引用类型

三、依赖自动装配

1、环境准备

2、按类型装配

3、按名称装配 


  • 在Spring中有两种依赖注入方式,setter注入和构造器注入,注入的数据又分为简单类型和引用类型

一、setter注入(推荐)


1、简单类型

(1)新建一个Maven项目,在项目中添加BookDao、BookDaoImpl、UserDao、UserDaoImpl、BookService和BookServiceImpl类

public interface BookDao {
    public void save();
}



public class BookDaoImpl implements BookDao {
    public void save() {
        System.out.println("book dao save ...");
    }
}


public interface UserDao {
    public void save();
}


public class UserDaoImpl implements UserDao {
    public void save() {
        System.out.println("user dao save ...");
    }
}



public interface BookService {
    public void save();
}



public class BookServiceImpl implements BookService{
    private BookDao bookDao;

    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

(2)在BookDaoImpl类中声明对应的简单数据类型的属性,并提供对应的setter方法

public class BookDaoImpl implements BookDao {

    private String databaseName;
    private int connectionNum;

    public void setConnectionNum(int connectionNum) {
        this.connectionNum = connectionNum;
    }

    public void setDatabaseName(String databaseName) {
        this.databaseName = databaseName;
    }

    public void save() {
        System.out.println("book dao save ..."+databaseName+","+connectionNum);
    }
}

(3)配置文件中进行注入配置

 

(4)运行App类,结果为


2、引用类型

(1)在bean中定义引用类型属性,并提供可访问的set方法

public class BookServiceImpl implements BookService {
    private BookDao bookDao;
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }
}

(2)配置中使用property标签和ref属性注入引用类型对象

<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">
	<property name="bookDao" ref="bookDao"/>
</bean>

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>

(3)运行App类,结果为

二、构造器注入


1、简单类型

(1)修改BookDaoImpl类,添加构造方法

(2)配置完成多个属性构造器注入

(3) 运行App类,结果为

2、引用类型

(1)在BookServiceImpl类中将bookDao的setter方法删除掉,并添加带有bookDao参数的构造方法

(2)配置文件中进行配置构造方式注入 (3)运行App类,结果为

三、依赖自动装配

  • 什么是依赖自动装配?

IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配

  • 自动装配方式有哪些?

按类型(常用)
按名称(了解)

1、环境准备

(1)项目中添加BookDao、BookDaoImpl、BookService和BookServiceImpl类

public interface BookDao {
    public void save();
}


public class BookDaoImpl implements BookDao {
    
    private String databaseName;
    private int connectionNum;
    
    public void save() {
        System.out.println("book dao save ...");
    }
}


public interface BookService {
    public void save();
}



public class BookServiceImpl implements BookService{
    private BookDao bookDao;

    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    public void save() {
        System.out.println("book service save ...");
        bookDao.save();
    }
}

(2)resources下提供spring的配置文件

(3)编写App运行类,加载Spring的IOC容器,并从中获取对应的bean对象 

2、按类型装配


(1)将<property>标签删除,并在<bean>标签中添加autowire属性

(2)运行App类,结果为

3、按名称装配 

将<property>标签删除,并在<bean>标签中添加autowire属性,运行结果相同 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值