创建构造方法
package com.dependency.spring6.service;
import com.dependency.spring6.dao.UserDao;
import com.dependency.spring6.dao.VipDao;
public class CustomerService {
private UserDao userDao;
private VipDao vipDao;
public CustomerService(UserDao userDao, VipDao vipDao) {
this.userDao = userDao;
this.vipDao = vipDao;
}
public void save(){
userDao.insert();
vipDao.insert();
}
}
beans,xml文件进行引入
<?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="xxxx" class="com.dependency.spring6.dao.UserDao"/>
<bean id="yyyy" class="com.dependency.spring6.dao.VipDao"/>
<bean id="csBean" class="com.dependency.spring6.service.CustomerService">
<!--构造注入-->
<!--指定构造方法的第一个参数 下标是0-->
<constructor-arg index="0" ref="xxxx"/>
<!--指定构造方法的第二个参数 下标是1-->
<constructor-arg index="1" ref="yyyy"/>
</bean>
</beans>
测试类进行测试
@Test
public void testConstructor(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
CustomerService csBean = applicationContext.getBean("csBean", CustomerService.class);
csBean.save();
}
测试成功
这个里面也可以使用名字注入,就是把index后面跟着的下标换成具体的名字,也是可行的。