- 思考:向一个类中传递数据要几种?
- set方法
- 构造方法
- 思考:依赖注入描述了在容器中建立bean与bean之间依赖关系的过程,如果bean运行需要数字或字符呢
- 引用类型
- 简单类型(基本数据类型和字符串)
注入方式(4种)
- setter注入简单和引用类型(学过)
- 构造器注入简单和引用类型
- 代码演示:一个service绑定两个dao,以及其中一个dao中的数据插入方式(setter方法)
- 代码结构
pom文件不变
两个接口均为save()的方法体
BookDaoImpl:不变
package com.dao.impl;
import com.dao.BookDao;
public class BookDaoImpl implements BookDao {
public void save() {
System.out.println("输出bookbean");
}
}
StuDaoImpl:添加两个变量以及他们的set方法用于IOC装载数据
package com.dao.impl;
import com.dao.StuDao;
public class StuDaoImpl implements StuDao {
private String name;
private int number;
//set方法是为了让IOC转载数据
public void setName(String name) {
this.name = name;
}
public void setNumber(int number) {
this.number = number;
}
//打印输出
public void save() {
System.out.println(name+","+number);
}
}
BookServiceImpl:多声明一个dao以及对应的set方法
package com.service.impl;
import com.dao.BookDao;
import com.dao.StuDao;
import com.service.BookService;
public class BookServiceImpl implements BookService {
private BookDao bookDao;
private StuDao stuDao;
public void setBookDao(BookDao bookDao) {
this.bookDao = bookDao;
}
public void setStuDao(StuDao stuDao) {
this.stuDao = stuDao;
}
public void save() {
bookDao.save();
stuDao.save();
}
}
applicationContext.xml:展示数据的装载方式以及一个service绑定两个dao
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="bookDao" class="com.dao.impl.BookDaoImpl"></bean>
<bean id="stuDao" class="com.dao.impl.StuDaoImpl">
<!-- 对stuDao的实现类中的变量根据名字一一加载 -->
<property name="name" value="ljh"></property>
<property name="number" value="191106044"></property>
</bean>
<!-- 同时加载两个dao -->
<bean id="bookService" class="com.service.impl.BookServiceImpl">
<property name="bookDao" ref="bookDao"></property>
<property name="stuDao" ref="stuDao"></property>
</bean>
</beans>
app启动文件不变
package com;
import com.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class app {
public static void main(String[] args) {
ApplicationContext apx = new ClassPathXmlApplicationContext("applicationContext.xml");
BookService bookService = (BookService) apx.getBean("bookService");
bookService.save();
}
}
运行结果:
总结:可以进行简单的数据配置了,并且一个服务层绑定两个dao。注意在dao层有变量的时候要记得用set方法来让IOC容器找到机会注入数据,服务层声明的接口也一样要用set让IOC找到注入方法