`
clover灬
  • 浏览: 9308 次
  • 性别: Icon_minigender_1
  • 来自: 未来
社区版块
存档分类
最新评论

Spring 构造方法注入

阅读更多
在Spring中,一个bean只能为一个构造方法注入!

1、当只有个一个构造方法,且构造方式只有一个参数:
<bean id="user" class="com.clover.bean.User">
	<constructor-arg value="boy" />
	<property name="name" value="clover" />
	<property name="age" value="26"></property>
</bean>

public User(String sex) {
    this.sex = sex;
}
这个时候直接注入值即可,不用指定构造方法中参数的类型。

2、当构造方法有两个参数,Constructor-based DI会根据配置文件中代码顺序,为构造方法注入值。
<bean id="user" class="com.clover.bean.User">
	<constructor-arg value="boy" />
        <constructor-arg value="郑州" />
	<property name="name" value="clover" />
	<property name="age" value="26"></property>
</bean>

public User(String sex, String addr) {
    this.sex = sex;
    this.addr = addr;
}
所以,如果把参数的顺序搞错的话,会得到错误的值。如果构造方法的参数类型不一样就会报错。

在<constructor-arg />中指定type(参数类型)、index(文职)以及name(参数属性名)可以解决问题。
<bean id="user" class="com.clover.bean.User">
    <constructor-arg  name="age" index="1" type="int" value="26" />
    <constructor-arg name="sex" index="0" type="java.lang.String" value="boy" />
</bean>


type、index和name在优先级上应该是平行的。不过,name用的时候有需要注意的地方。
Spring官方文档:
引用
Keep in mind that to make this work out of the box your code must be compiled with the debug flag enabled so that Spring can look up the parameter name from the constructor. If you can’t compile your code with debug flag (or don’t want to) you can use @ConstructorProperties JDK annotation to explicitly name your constructor arguments.
分享到:
评论

相关推荐

    Spring 依赖注入 构造方法注入

    NULL 博文链接:https://zhangyulong.iteye.com/blog/856986

    Spring依赖注入使用构造设注入demo

    本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...

    SpringSet方法注入

    我们学习了spring框架spring框架里面有3个优势第一个是轻量级的IOC也叫控制反转后来改名为DI也叫依赖注入,依赖注入里面有3中注入方法分别是set注入,构造器注入,注解注入,我传的是set注入的视频

    spring的setter注入和构造注入(XML讲解以及常见错误)

    总结起来,Spring的setter注入和构造注入都是实现依赖注入的有效方式,选择哪种取决于具体场景。理解并熟练掌握这两种注入方式,对于编写健壮、可维护的Spring应用至关重要。同时,注意避免常见的配置错误,能提高...

    Spring三种注入方式(三)

    这种方式是通过实现特定的接口,由Spring在运行时动态调用接口方法注入依赖。Spring没有内置的接口注入机制,但可以通过实现`InitializingBean`或`DisposableBean`接口来自定义初始化和销毁逻辑。例如: ```java ...

    spring setter 和构造 注入 例子 spring 4.2.0

    总结来说,Spring的setter和构造注入是实现依赖注入的关键技术,它们提供了灵活且强大的方式来管理对象间的依赖关系,从而提高代码的可维护性和测试性。在实际项目中,开发者可以根据需求和场景选择合适的注入方式。

    spring的注入方式

    Spring提供了多种注入方式,包括set注入、构造注入和自动注入,让我们逐一深入探讨。 1. **Set注入** Set注入是最常见的注入方式,它通过setter方法来设置对象的依赖。首先,你需要在类中声明需要注入的属性,并...

    关于spring boot中几种注入方法的一些个人看法

    @Autowired 是 Spring 中最常用的注入方法之一,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。@Autowired 的工作原理是,在启动 Spring IoC 时,容器自动装载了一个 ...

    Spring IOC之方法注入

    本文将深入探讨Spring中的一个特殊概念——方法注入,它是IOC的一种扩展形式。 方法注入允许我们在运行时通过容器调用特定的方法来传递依赖。这种方法与传统的构造器注入和属性注入相比,提供了更大的灵活性,因为...

    Spring中的方法注入

    综上所述,Spring中的方法注入提供了更灵活的方式来管理和注入依赖,它与构造函数注入、属性注入等一起,构成了Spring强大的依赖注入机制。理解并合理使用这些注入方式,可以帮助我们编写出更加健壮、易于维护的代码...

    Spring框架构造注入操作实战案例

    Spring框架构造注入操作实战案例 在软件开发中,构造注入是一种常见的设计模式,用于将依赖项注入到对象中,以提高系统的灵活性和可维护性。Spring框架提供了强大的构造注入功能,允许开发者轻松地将依赖项注入到...

    Spring三种注入方式(一)

    本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 首先,我们来看构造器注入。构造器注入是在创建对象时,通过构造器传递依赖对象。这种方式强制了对象在创建时就必须提供所有必要的依赖...

    spring介绍(set和构造器注入)

    标题中的“spring介绍(set和构造器注入)”是指在Spring框架中两种主要的依赖注入(Dependency Injection,简称DI)方式:setter注入和构造器注入。在Spring框架中,DI是一种核心特性,它允许我们解耦组件之间的关系...

    Spring的注入方式详解

    下面我们将详细探讨Spring 中的三种注入方式:接口依赖注入(Type1)、setter/getter 注入(Type2,也称为属性注入)和构造方法注入(Type3)。 1. **接口依赖注入(Type1)** 这种注入方式相对不常见,主要适用于...

    Java开发学习(六)----DI依赖注入之setter及构造器注入解析.doc

    普通方法(set 方法)、构造方法、引用类型、简单类型(基本数据类型与 String)等。Spring 框架基于这些知识点,为我们提供了两种注入方式:setter 注入和构造器注入。 二、setter 注入 setter 注入是指通过 ...

    spring依赖注入三种方式 测试源码

    接口注入在Spring中较少使用,主要是通过实现特定的接口,由Spring提供实现该接口的方法来注入依赖。这种方式对类的侵入性较大,但可以避免使用setter方法。在实际应用中,更多地会采用构造器注入和设值注入。 ...

    第五章 Spring4 自动装配、方法注入

    在本章中,我们将深入探讨Spring框架的核心特性之一——自动装配和方法注入。Spring作为一款广泛应用的Java企业级开发框架,极大地简化了依赖管理,提高了代码的可测试性和可维护性。自动装配和方法注入是Spring实现...

    99%的人答不对Spring推断构造方法!打破你三观!!!(范例→源码)

    首先,我们来看 Spring 为何推荐使用构造方法注入。构造方法注入是在创建对象时,通过构造函数将依赖注入到类中。这种方式确保了对象在被创建时就具备了所有必要的依赖,因此对象的状态是完整的,符合 "纯" 函数的...

    Spring Ioc 注解 依赖注入

    1. **构造器注入**:通过类的构造方法来注入依赖项。 2. **设值注入**:通过setter方法来注入依赖项。 #### 四、使用注解进行依赖注入 随着Spring框架的发展,除了XML配置之外,Spring还引入了注解的方式来简化...

    spring依赖注入底层详解

    在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成注入。这种方式在创建对象时就确保了所有依赖都已就绪,适合于对象的依赖关系...

Global site tag (gtag.js) - Google Analytics