Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 876|回复: 0

开发交流:Android Spring依赖注入(1)

[复制链接]

该用户从未签到

发表于 2011-10-24 10:50:22 | 显示全部楼层 |阅读模式
使用构造器注入
使用属性setter方法注入
使用Field注入(用于注解方式)
注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果。
1.手工装配依赖对象
手工装配依赖对象,在这种方式中又有两种编程方式
在xml配置文件中,通过在bean节点下配置
java代码中使用@Autowired或@Resource注解方式进行装配
依赖注入--手工装配--XML方式
通过setter方法注入依赖
<bean>元素的< property >子元素指明了使用它们的set方法来注入。可以注入任何东西,从基本类型到集合类,甚至是应用系统的bean。
通过setter方法注入依赖
简单bean配置
配置bean的简单属性,基本数据类型和String。
<beanidbeanid="personService" class="com.test.bean.impl.PersonServiceImpl">

<!-- 基本类型,string类型 -->

<propertynamepropertyname="age"value="20"></property>

<propertynamepropertyname="name" value="张无忌"></property>                        

</bean>
复制代码
通过setter方法注入依赖
引用其它bean
<beanidbeanid="person"class="com.test.bean.Person" />

<beanidbeanid="personService"   

class="com.test.bean.impl.PersonServiceImpl">

<!-- 引用类型 -->

<propertynamepropertyname="person" ref="person" />

</bean>
复制代码
内部bean
<beanidbeanid="personService"class="com.test.bean.impl.PersonServiceImpl">

<!-- 内部bean注入 -->

<propertynamepropertyname="personClass">

<beanclassbeanclass="com.test.bean.PersonClass" />

</propert>

</bean>
复制代码
这种方式的缺点是你无法在其它地方重用这个personClass实例,原因是它是专门为personService而用。
装配集合
若bean的属性是集合类型,按如下处理:
A、装配List和数组:
<!-- 装配list -->

<propertynamepropertyname="lists">

  <list>

    <value>list1</value>

    <value>list2</value>

    <refbeanrefbean="person"/>

  </list>

</property>

<!--装配数组 -->

<property name="obj">

  <list>

    <value>obj1</value>

    <value>obj2</value>

    <refbeanrefbean="person"/>

  </list>

</property>
复制代码B、 装配set: <!--装配set -->

<property name="sets">

   <set>

    <value>set1</value>

    <value>set2</value>

    <refbeanrefbean="person"/>

  </set>

</property>
复制代码
set使用方法和list一样,不同的是对象被装配到set中,而list是装配到List或数组中装配。
装配集合
C、装配map:
<!-- 装配map-->

<propertynamepropertyname="maps">

<map>

<entrykeyentrykey="01">

<value>map01</value>

</entry>

<entrykeyentrykey="02">

<value>map02</value>

</entry>

</map>

</property>
复制代码
map中的<entry>的数值和<list>以及<set>的一样,可以使任何有效的属性元素,需要注意的是key值必须是String的。
D、装配Properties:
<!--装配Properties  -->

<property name="props">

<props>

<prop key="01">prop1</prop>

<prop key="02">prop2</prop>

</props>

</property>
复制代码E、设置null: <!--装配null -->

<property name="listnull">

<null/>

</property>
复制代码
通过参数的顺序:
<constructor-argindexconstructor-argindex="0">

<value>张三</value>

</constructor-arg>

<constructor-argindexconstructor-argindex="1">

<value>56</value>

</constructor-arg>
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 07:44 , Processed in 0.371153 second(s), 48 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表