Spring依赖注入原理(DI)
DI: 依赖注入
第一种注入方式: 使用set方法进行注入(setter注入)
(1)创建类, 定义属性和对应的set方法
/**
* 演示使用setter方法进行注入属性
*/
public class Book {
//创建属性
private String bname;
private String bauthor;
//创建属性对应的set方法
public void setBname(String bname) {
this.bname = bname;
}
public void setBauthor(String bauthor) {
this.bauthor = bauthor;
}
}
(2)在Spring的配置文件中配置对象创建, 配置属性注入
<!--set方法注入属性-->
<bean id="book" class="com.lqk.spring.Book">
<!--使用property完成属性注入
name: 类里面属性名称
value: 向属性注入的值
-->
<property name="bname" value="西游记"></property>
<property name="bauthor" value="吴承恩"></property>
</bean>
第二种注入方式: 使用有参构造进行注入(构造器注入)
(1)创建类, 定义属性, 创建有参构造
/**
* 使用有参构造注入
*/
public class Orders {
//属性
private String oname;
private String address;
//有参构造
public Orders(String oname, String address) {
this.oname = oname;
this.address = address;
}
}
(2)在Spring配置文件中进行配置
<!--有参构造方法注入属性-->
<bean id="orders" class="com.lqk.spring.Orders">
<constructor-arg name="oname" value="键盘"></constructor-arg>
<constructor-arg name="address" value="江西"></constructor-arg>
</bean>
第三种注入方式: p名称空间注入 (了解)
使用p名称空间注入, 可以简化基于xml配置方式
(1)添加p名称空间在配置文件中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
(2)进行属性注入, 在bean标签里面进行操作
<!--p名称空间注入-->
<bean id="book2" class="com.lqk.spring.Book" p:bname="红楼梦" p:bauthor="曹雪芹"></bean>