Spring依赖注入
1 2 3 4 5 6 7 8 9 10 11 12 | /* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知识和生活 *各种干货,记得关注哦! *vx:it_daimeng */ |
1.通过属性标签property注入
property标签
属性: name:属性名 value:属性值 ref:依赖的对象id
测试代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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( "创建一杯饮料" ); } } |
1 2 3 4 5 | <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类中添加构造函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 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 + '}' ; } } |
配置文件中调用不同构造函数测试:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!-- 构造函数的参数个数相同 参数类型也相同 但顺序不同 需要用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”
1 2 3 4 5 | <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:属性名=属性值
1 2 | <bean id= "drink_01" class = "com.test.pojo.Drink" p:name= "珍珠奶茶" p:price= "28" p:sugar= "半糖" /> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)