二、依赖注入的实现方法
(一)使用set方法
1.什么是构造器:构造器是一个函数,名字和类名相同,创建对象系统调用,用于初始化对象的各种属性值。如果一个类没有构造器系统默认一个无参构造器。
无参构造器给属性赋值为下列情况:"",int 0,booleanflase
2.无参构造器
public void User(){}
第一步:创建普通类使用无参构造器初始化对象
第二步:在bean工厂中装配对象,使用无参构造器初始化对象
<?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-4.3.xsd">
<!--
这是bean工厂的装配容器
这里只负责装配,不负责实现
-->
<bean id="userDao" class="LDZ.com.DAO.DaoImpl"/>
<bean id="userService" class="LDZ.com.Services.UserServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>
<bean id="User" class="LDZ.com.pojo.User">
<constructor-arg index="0" value="123"/>
<constructor-arg index="1" value="ldd"/>
<constructor-arg index="2" value="123"/>
</bean>
</beans>
第三步:测试数据
@Test
public void one(){
//1.创建bean工厂,名称是contest,也叫做上下文对象,
//并且同事创建容器中装配好的bean(对象),这些对象一旦创建就永久存在
//工厂生命周期结束,对象的生命才结束
ApplicationContext context =
new ClassPathXmlApplicationContext("bean.xml");
//2.从bean工厂中获取bean
UserServices userService = context.getBean("userService",UserServices.class);
userService.addUser();
userService.delUser();
userService.findUser(111);
userService.updateUser();
}
3.有参构造器注入值
3.1有参构造器的样式
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
第一步:创建普通类,使用有参构造器初始化对象
package LDZ.com.pojo;
public class User {
private int id;
private String name;
private String pwd;
public void User(){
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
结果如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yu5nA9pm-1632886160378)(F:/picture/02.png)]
3.属性值注入法
条件:
1.属性注入法也称setXXX注入法
2.为各种属性提供set注入方法