spring入门(7) 装配Bean中构造参数的注入

spring装配bean中还有一种Set注入的替代,那就是构造参数的注入。

set注入是一种直接方式,缺点是它假设了 所 有的可变属性都可以通过set方法访问到。例如有些属性在创建时设置一次,以后不再改变。替代方式是通过构造函数设 置一些属性值。还有它无法清晰表达哪些属性是必须的,哪些是可选的,构造注入的优势是通过构造强制依赖关系,不可能 实例化不完全的或无法使用的bean。下面是构造器的几种注入方式:

1.通过构造函数注入 (原始方式)

2.根 据构造器参数的类型

3.根据索引index注入

4.根据参数名称注入

EmployeeBean.java

package www.csdn.spring.constructor.bean;  

public class EmployeeBean {  

    private String name;
    private Double salary;
    private Dept dept;
    private String sex;  

    // 构造器函数
    public EmployeeBean(String name, Double salary, Dept dept, String sex) {
        super();
        this.name = name;
        this.salary = salary;
        this.dept = dept;
        this.sex = sex;
    }  

    @Override
    public String toString() {
        return "EmployeeBean [name=" + name + ", salary=" + salary + ", dept="
                + dept + ", sex=" + sex + "]";
    }  

}

Dept.java

package www.csdn.spring.constructor.bean;  

public class Dept {  

    private String name;
    private String deptno;  

    public void setName(String name) {
        this.name = name;
    }  

    public void setDeptno(String deptno) {
        this.deptno = deptno;
    }  

    @Override
    public String toString() {
        return "Dept [name=" + name + ", deptno=" + deptno + "]";
    }  

}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, private
, this
, spring注入
, public
, 构造器
, name
, 构造函数依赖注入
属性注入
spring动态注入bean、spring 注入bean、spring boot 注入bean、spring注解注入bean、spring手动注入bean,以便于您获取更多的相关知识。

时间: 2024-10-29 22:10:14

spring入门(7) 装配Bean中构造参数的注入的相关文章

spring新手配置一个bean使用构造注入constructor-arg总是报错

问题描述 spring新手配置一个bean使用构造注入constructor-arg总是报错 spring新手求助! 最简单的配置了一个bean, Way里有一个构造方法 public Way(int num) { this.num = num; } 然后总是报下面错: 信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@67b6d4ae:

springmvc-Spring 导入applicationContext.xml的bean中无法使用参数占位符

问题描述 Spring 导入applicationContext.xml的bean中无法使用参数占位符 不知道有人遇到过这种情况没有,在applicationContext.xml中可以正常使用参数占位符,如: <property name="driverClass" value="${jdbc.driverClass}"/> <property name="jdbcUrl" value="${jdbc.jdbcUrl

Spring 使用注解装配Bean

Spring可以使用xml配置文件来装配bean,也可以使用注解来装配Bean 1.在上一篇文章的基础上在com.springtest包中新建Tire类,源码为: package com.springtest; public class Tire { privatedouble price; privateString brand; publicString getBrand() { returnbrand; } publicvoid setBrand(String brand) { this.

spring入门(8) 装配Bean之自动装配

Spring_Autowiring collaborators 在Spring3.2.2中自动装配类型,分别为:no(default)(不采用自动装配). byName,byType,constructor下面来分别介绍一下这些是如何自动装配的 <bean id="foo" class="...Foo" autowire="autowire type"> Mode            Explanation no: (Default

spring入门(4) spring中Bean的生命周期总结

Spring中Bean的生命周期,在学习spring的过程中bean的生命周期理解对学习spring有很大的帮助,下面我就分别介绍在 ApplicationContext和BeanFactory中Bean的生命周期. 1.在ApplicationContext中Bean的生命周期 生命周 期执行的过程如下: 1.需找所有的bean根据bean定义的信息来实例化bean 2.使用依赖注入,spring按bean 定义信息配置bean的所有属性 3.若bean实现了BeanNameAware接口,工

Spring实战3:装配bean的进阶知识

主要内容: Environments and profiles Conditional bean declaration 处理自动装配的歧义 bean的作用域 The Spring Expression Language 在装配bean-依赖注入的本质一文中,我们探讨了Spring的三种管理bean的方式:自动装配.基于JavaConfig.基于XML文件.这篇文字将探讨一些Spring中关于bean的管理的高级知识,这些技能你可能不会每天都用,但是非常重要. 3.1 Environments

《Spring攻略(第2版)》——1.12 用@Autowired和@Resource自动装配Bean

1.12 用@Autowired和@Resource自动装配Bean 1.12.1 问题 在Bean配置文件中设置autowire属性进行的自动装配将装配一个Bean的所有属性.这样的灵活性不足以仅仅装配特定的属性.而且,你只能通过类型或者名称自动装配Bean.如果这两种策略都不能满足你的需求,就必须明确地装配Bean. 1.12.2 解决方案 从Spring 2.5起,自动装配功能进行了多处改进.你可以通过用@Autowired或者@Resource(在JSR-250:Java平台常见注解中定

《Spring攻略(第2版)》——1.11 用XML配置自动装配Bean

1.11 用XML配置自动装配Bean 1.11.1 问题 当一个Bean需要访问另一个Bean时,你可以显式指定引用装配它.但是,如果你的容器能够自动装配Bean,就可以免去手工配置装配的麻烦. 1.11.2 解决方案 Spring IoC容器能够帮助你自动装配Bean.你只要在的autowire属性中指定自动装配模式就可以了.表1-2列出了Spring支持的自动装配模式. *默认模式是no,但是可以设置根元素的default-autowire属性修改.这个默认模式将被Bean自己指定的模式覆

《Spring实战(第4版)》——2.4 通过XML装配bean

2.4 通过XML装配bean 到此为止,我们已经看到了如何让Spring自动发现和装配bean,还看到了如何进行手动干预,即通过JavaConfig显式地装配bean.但是,在装配bean的时候,还有一种可选方案,尽管这种方案可能不太合乎大家的心意,但是它在Spring中已经有很长的历史了. 在Spring刚刚出现的时候,XML是描述配置的主要方式.在Spring的名义下,我们创建了无数行XML代码.在一定程度上,Spring成为了XML配置的同义词. 尽管Spring长期以来确实与XML有着