1、构造函数注入:

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

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

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

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

  1. package com.my.bean;
  2.  
  3. public class Foo {
  4.  
  5. public Foo(Bar bar, Baz baz) {
  6. // ...
  7. }
  8. }
  1. <beans>
  2. <bean id="foo" class="com.my.bean.Foo">
  3. <constructor-arg ref="bar"/>
  4. <constructor-arg ref="baz"/>
  5. </bean>
  6.  
  7. <bean id="bar" class="com.my.bean.Bar"/>
  8. <bean id="baz" class="com.my.bean.Baz"/>
  9.  
  10. </beans>

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

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

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

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

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

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

2、静态工厂方法注入

  1. <bean id="clientService"
  2. class="examples.ClientService"
  3. factory-method="getInstance"/>
  1. public class ClientService {
  2.  
  3. public static ClientService getInstance() {
  4. return new clientService();
  5. }
  6. }

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

  1. public class MyServiceFactory {
  2.  
  3. public MyServiceBean createMyServiceBean(){
  4.  
  5. return new MyServiceBean();
  6. }
  7. }
  1. <bean id="myServiceFactory" class="com.my.bean.MyServiceFactory"></bean>
  2.  
  3. <bean id="personService" factory-bean="myServiceFactory" factory-method="createMyServiceBean"></bean>

spring Bean的三种注入方式的更多相关文章

  1. spring Bean的三种配置方式

    Spring Bean有三种配置方式: 传统的XML配置方式 基于注解的配置 基于类的Java Config 添加spring的maven repository <dependency> ...

  2. Spring IOC以及三种注入方式

    IOC是spring的最基础部分,也是核心模块,Spring的其他组件模块和应用开发都是以它为基础的.IOC把spring的面向接口编程和松耦合的思想体现的淋漓尽致. IOC概念 IOC(Invers ...

  3. Spring IOC 中三种注入方式

    项目错误知识点记录 正文 最近在项目的时候,用到Spring框架,Spring框架提供了一种IOC的自动注入功能,可以很轻松的帮助我们创建一个Bean,这样就省的我们四处写new Object()这样 ...

  4. Spring常用的三种注入方式

    好文要收藏,摘自:https://blog.csdn.net/a909301740/article/details/78379720 Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入 ...

  5. Spring:Spring-IOC三种注入方式、注入不同数据类型

    一.Spring IOC(依赖注入的三种方式): 1.Setter方法注入 package com.jpeony.spring.setter; import com.jpeony.spring.com ...

  6. spring bean的三种管理方式·

    1.无参构造函数 1.xml文件配置内容 <!--无参构造函数--> <bean id="bean1" class="com.imooc.ioc.dem ...

  7. Spring学习日记01_IOC_xml的三种注入方式

    什么是IOC 控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理 使用IOC目的:为了耦合度降低 做入门案例就是IOC实现 IOC底层原理 xml解析 工厂模式 反射 原始方式 cla ...

  8. spring ioc三种注入方式

    spring ioc三种注入方式 IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转 什么是控制反转? 控制反转是一种将组件依赖关系的创建和管理置于程序外部的技术. 由容 ...

  9. Spring IOC 三种注入方式

    1.    接口注入 2.    setter注入 3.    构造器注入 对象与对象之间的关系可以简单的理解为对象之间的依赖关系:A类需要B类的一个实例来进行某些操作,比如在A类的方法中需要调用B类 ...

随机推荐

  1. XDCTF 2013 code2 跳出死循环

    题目:编写一个程序(比如kernel module),使附件2.c中的程序跳出死循环.2.c中的代码如下:#include int main(int argc, char *argv[]){int n ...

  2. wcf传输Dataset大数据量 -压缩(一)

    wcf传输Dataset大数据量 -压缩(一) 由于WCF不能传输DataTable(不能序列化),所以更多项目中都会使用DataSet作为查询集合的首选返回类型,但是由于DataSet会生成很多的状 ...

  3. 项目结构的设计(iOS篇)

    项目结构的设计(iOS篇) 本文附带源码:YoungHeart-Chapter-02.zip 在设计任何一个框架之前,都应规划好项目结构. 假定Git作为我们的项目管理工具.我们要建立两个仓库,一个用 ...

  4. Sublime中开发Ruby

    Ruby:Sublime中开发Ruby需要注意的Encoding事项 目录 背景Sublime相关默认的文件存储编码:UTF8默认的输出控制台编码:UTF8修改默认的输出控制台编码Ruby相关默认的代 ...

  5. 从MSSQL server 2005中移植数据到Oracle 10g

    body, p, th, td, li, ul, ol, h1, h2, h3, h4, h5, h6, pre { font-family: simsun; line-height: 1.4; } ...

  6. TCP/IP capture/analysis tools in Unix/Linux

    There are some useful tools in Unix/Linux to check out how the system is going on. Here is a short s ...

  7. MacOSX 下.app支持同时运行多个实例

    在MacOSX下的.app是一个程序包(实际上是个目录),双击该目录时系统会根据包的目录结构启动相应的可执行程序..app的程序默认是单实例运行的,所以从.app启动的程序实例只有一个(可执行程序不受 ...

  8. 异步队列 Deferred

    异步队列 Deferred 背景: 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe ...

  9. [Android开发常见问题-12] Android开发中debug.keystore如何使用。

    有些团度在开发较大的项目的时候会用到debug.keystore这种debug签名,那么这个东西怎么用呢?之前在导出签名包的时候只需要android tools -> export signed ...

  10. TCPDump 抓Loopback数据包

    编写网络程序必备截包工具, unix下面自带tcpdump, linux就不用说了.用于排查网络程序的bug,命令行如何使用请百度谷歌.分析包推荐wireshark,可视化非常方便.一般都是在非Win ...