前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring的依赖注入

Spring的依赖注入

作者头像
良月柒
发布2019-03-19 16:10:56
6060
发布2019-03-19 16:10:56
举报
文章被收录于专栏:程序员的成长之路

依赖注入是一个重要的知识点,很多大型项目都要用到依赖注入的思想,那么怎么理解依赖注入呢?

首先学会的是关于set方法的注入:在一个自己创建的User类中,封装所有的私有属性,例如name,age,还有一些个复杂属性list,map之类的。很多人会问啥是封装属性:private String name ,private int age, private List list,private Map map和private Dog dog(引用类型)。然后给这些属性配上get和set方法,尤其是set方法,需要用于依赖注入,在配上toString方法好进行查看和输出内容。

package pojo;

import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set;

public class User { //简单类型 private String name; private int age; //复杂类型 private List list; private Map map; private Set set; private String[] arr; private Properties pro; //引用类型 private Dog dog; public Dog getDog() { return dog; } public void setDog(Dog dog) { this.dog = dog; } public List getList() { return list; } public Map getMap() { return map; } public void setMap(Map map) { this.map = map; } public Set getSet() { return set; } public void setSet(Set set) { this.set = set; } public String[] getArr() { return arr; } public void setArr(String[] arr) { this.arr = arr; } public Properties getPro() { return pro; } public void setPro(Properties pro) { this.pro = pro; } public void setList(List list) { this.list = list; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } @Override public String toString() { return "User [name=" + name + ", age=" + age + ", list=" + list + ", map=" + map + ", set=" + set + ", arr=" + Arrays.toString(arr) + ", pro=" + pro + ", dog=" + dog + "]"; } }

<bean id="user" class="pojo.User"> <!-- property标签:表示描述类中的各个属性 name="" : 表示 属性名 value="" :表示 属性值 spring在依赖注入时:自动识别 简单的数据类型 --> <property name="name" value="张三丰"></property> <property name="age" value="10"></property> <!-- 复杂类型 --> <!-- list在spring中,默认是ArrayList类型的 --> <property name="list"> <list> <value>1</value> <value>2</value> <value>3</value> <value>4</value> </list> </property> <property name="map"> <map> <entry key="1" value="一"></entry> <entry key="2" value="二"></entry> <entry key="3" value="三"></entry> <entry key="4" value="四"></entry> </map> </property> <property name="set"> <set> <value>1</value> <value>1</value> <value>1</value> <value>1</value> </set> </property> <!-- 数组 array --> <property name="arr"> <list> <value>1</value> <value>2</value> <value>3</value> <value>4</value> </list> <!-- 探索:<array>标签到底是什么意思? --> </property> <!-- properties :userName = root --> <property name="pro"> <props> <!-- key:value键值对 --> <prop key="1"> 八 </prop> <prop key="2"> 二 </prop> <prop key="3"> 三 </prop> <prop key="4"> 四 </prop> </props> </property> <!-- 引用类型 ref="" : 引用了 其他的bean标签,值是bean标签中的id的值 --> <property name="dog" ref="dog"></property> </bean> <!-- 描述Dog类的对象 练习:对Dog类增加几个属性,然后进行依赖注入 在user对象中,把dog对象注入到User的dog属性中 --> <bean id="dog" class="pojo.Dog"></bean>

其中<property>标签就是进行set方式的 依赖注入的,name="set函数后缀首字母小写" 其中引用类型的注入式ref="dog" 即 <bean id="dog" class="pojo.Dog"></bean>中的id="dog" 将dog这个类中的属性也通过ref注入到user之中。

以上是关于set方法的注入。

关于构造方法的注入呢?

<bean id="user" class="pojo.User" >

<constructor-arg index="0" name="属性的名字,如id,age,name等" value=”要注入的值“ ref="引用类型的id">

<list>

<value>1</value>

</list>

</constructor-arg>

</bean>

跟楼上<property>标签用法大体上类似

关于set方法注入和构造方法注入都有了之后,学习其他更简单方法的注入,关于注解的神奇用法。

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档