1、构造函数注入:

构造函数的注入方式分为很多种

(1)普通构造函数,空参数的构造函数

<bean id="exampleBean" class="examples.ExampleBean"/>  

(2)根据构造函数的参数顺序和个数

package com.my.bean;

public class Foo {

  public Foo(Bar bar, Baz baz) {
// ...
}
}
<beans>
<bean id="foo" class="com.my.bean.Foo">
<constructor-arg ref="bar"/>
<constructor-arg ref="baz"/>
</bean> <bean id="bar" class="com.my.bean.Bar"/>
<bean id="baz" class="com.my.bean.Baz"/> </beans>

(3)根据构造函数的参数类型匹配

<bean id="exampleBean" class="examples.ExampleBean">
<constructor-arg type="int" value="7500000"/>
<constructor-arg type="java.lang.String" value="42"/>
<constructor-arg type="java.lang.Boolean" value="false"/>
</bean>

(4)根据构造函数的参数索引顺序和个数

<bean id="exampleBean" class="examples.ExampleBean">
<constructor-arg index="0" value="3000"/>
<constructor-arg index="1" value="42"/>
</bean>

(5)spring3以上还可以通过参数名称进行注入

<bean id="exampleBean" class="examples.ExampleBean">
<constructor-arg name="age" value="25"/>
<constructor-arg name="name" value="jerry"/>
</bean>

2、静态工厂方法注入

<bean id="clientService"
class="examples.ClientService"
factory-method="getInstance"/>
public class ClientService {

  public static ClientService getInstance() {
return new clientService();
}
}

3、实例化的工厂方法注入

public class MyServiceFactory {

    public MyServiceBean createMyServiceBean(){

        return new MyServiceBean();
}
}
<bean id="myServiceFactory" class="com.my.bean.MyServiceFactory"></bean>

<bean id="personService" factory-bean="myServiceFactory" factory-method="createMyServiceBean"></bean>

最新文章

  1. Win+R命令大全
  2. http statusCode(状态码)
  3. cordova android platform cordova build 遇到的问题
  4. Java 13 字符串
  5. 221. Maximal Square -- 矩阵中1组成的最大正方形
  6. KEYUSE
  7. 给Sublime Text 2安装CTags插件
  8. 概率质量函数:怀孕周期的PMF
  9. Android系统下的动态Dex加载与app速度优化
  10. 《C#并发编程经典实例》学习笔记—异步编程关键字 Async和Await
  11. 菜鸟手下的iOS开发笔记(swift)
  12. 强制清除 gradle 依赖缓存
  13. LeetCode 80 Remove Duplicates from Sorted Array II(移除数组中出现两次以上的元素)
  14. 图练习-BFS-从起点到目标点的最短步数(sdut 2830)邻接边表
  15. vue性能优化2--引入cdn
  16. .NET Core 和 .NET .Framework 速度比较
  17. switchsharp
  18. django网页的分页功能,大家如果有疑问请留言
  19. python 小词云
  20. 在文件夹快速启动cmd或powershell

热门文章

  1. angularjs图片上传后不刷新的解决办法
  2. phpredis扩展
  3. mmap学习
  4. C#中 如何执行带GO的sql 语句
  5. java模式之装饰模式
  6. windows窗体继承问题
  7. 一口一口吃掉Hexo(一)
  8. C语言之结构体
  9. canvas 弹幕效果
  10. WebStorm、IntelliJ IDEA、JetBrains、PhpStorm、RubyMine、PyCharm