Spring依赖注入
/* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知识和生活 *各种干货,记得关注哦! *vx:it_daimeng */
1.通过属性标签property注入
property标签
属性: name:属性名 value:属性值 ref:依赖的对象id
测试代码:
public class Drink { private String name; private String sugar; private float price; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSugar() { return sugar; } public void setSugar(String sugar) { this.sugar = sugar; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } public Drink() { System.out.println("创建一杯饮料"); } }
<bean id="drink_01" class="com.test.pojo.Drink" > <property name="name" value="西瓜汁" /> <property name="price" value="18" /> <property name="sugar" value="半糖" /> </bean>
2.通过构造函数注入
constructor-arg 标签
属性: name:构造函数的参数名
value:传进去的值
ref:参数依赖的对象
index:参数类型和参数个数都相同,但顺序不同的时候,可以用index来设置顺序 从0开始
type: 参数个数相同,参数名也相同,但类型不同 ,可以用type来设置类型
测试代码:
Drink类中添加构造函数:
package com.test.pojo; public class Drink { private String name; private String sugar; private float price; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSugar() { return sugar; } public void setSugar(String sugar) { this.sugar = sugar; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } public Drink() { System.out.println("创建一杯饮料"); } public Drink(String name) { this.name = name; } public Drink(String name, String sugar) { this.name = name; this.sugar = sugar; } public Drink(String name, float sugar) { this.name = name; this.price = sugar; } public Drink(float sugar,String name) { this.name = name; this.price = sugar; } @Override public String toString() { return "Drink{" + "name='" + name + '\'' + ", sugar='" + sugar + '\'' + ", price=" + price + '}'; } }
配置文件中调用不同构造函数测试:
<!-- 构造函数的参数个数相同 参数类型也相同 但顺序不同 需要用index来指定参数的顺序 index 指的是参数的顺序 --> <!-- 如果构造函数的参数个数相同 参数类型不同 则需要指定参数类型 基本类型 直接用基本类型 --> <bean id="drink_02" class="com.test.pojo.Drink" > <constructor-arg name="name" value="奶茶" /> </bean> <bean id="drink_03" class="com.test.pojo.Drink" > <constructor-arg name="name" value="珍珠奶茶" index="0" /> <constructor-arg name="sugar" value="13" type="float" index="1" /> </bean>
3.p空间注入
1)引入p空间
xmlns:p=“http://www.springframework.org/schema/p”
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" //加在xmlns属性中 xsi:schemaLocation="http://www.springframework.org/schema/beans“ />
2)使用
p:属性名=属性值
<bean id="drink_01" class="com.test.pojo.Drink" p:name="珍珠奶茶" p:price="28" p:sugar="半糖" />