spring容器的注入方式总结

例如我们现在有一个Computer类:

public class Computer {
    private String cpu;
    private String hdd;//硬盘
    private String mainboard;//主板
    private int type;//版本号
    //显示配置信息
    public void show() {
        System.out.println("cpu:"+cpu+" hdd:"+hdd+"mainboard: " +mainboard);
        System.out.println("type: "+type);
    }
    public String getCpu() {
        return cpu;
    }
    public void setCpu(String cpu) {
        this.cpu = cpu;
    }
    public String getHdd() {
        return hdd;
    }
    public void setHdd(String hdd) {
        this.hdd = hdd;
    }
    public String getMainboard() {
        return mainboard;
    }
    public void setMainboard(String mainboard) {
        this.mainboard = mainboard;
    }
    public int getType() {
        return type;
    }
    public void setType(int type) {
        this.type = type;
    }

}

1、基本类型值或者String类型的值的注入,property中name与类中定义的属性名一致,值由value指定,int类型的值也可以直接指定value="5"

(1)设值注入

原理:创建对象后,利用反射调用对象的setter方法,为相关的属性注入值

 <bean id = "computer" class="com.zlc.test.Computer">
         <property name="cpu" value="i7"></property>
         <property name="hdd" value="4G"></property>
         <property name="mainboard" value="bestone"></property>
         <property name="type" value="5"></property>
 </bean>

(2)构造注入

原理:在创建对象时,利用反射调用该带参的构造函数创建对象实例

原Computer改为这样:

public class Computer {
    private String cpu;
    private String hdd;//硬盘
    private String mainboard;//主板
    private int type;//版本号
    //显示配置信息
    public void show() {
        System.out.println("cpu:"+cpu+" hdd:"+hdd+"mainboard: " +mainboard);
        System.out.println("type: "+type);
    }
    public Computer(String cpu,String hdd,String mainboard,int type) {
        this.cpu = cpu;
        this.hdd = hdd;
        this.mainboard = mainboard;
        this.type = type;
    }

}
<bean id = "computer" class="com.zlc.test.Computer">
         <constructor-arg index="0" value="i7"></constructor-arg>
         <constructor-arg index="1" value="4G"></constructor-arg>
         <constructor-arg index="2" value="good"></constructor-arg>
         <constructor-arg index="3" value="5"></constructor-arg>
    </bean>

以上的index用来标识参数在构造器中的顺序,从0开始计数

2、引用类型值的注入

(1)设值注入:

原Computer改为这样:

public class Computer {
    private Date date;

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

}

在applicationContext.xml配置为:

    <bean id = "computer" class="com.zlc.test.Computer">
         <property name="date" ref="date"></property>
    </bean>
    <bean id="date" class="java.util.Date">
    </bean>

(2)构造注入

原Computer改为这样:

public class Computer {
    private Date date;

    public Computer(Date date) {
        this.date = date;
    }

}

在applicationContext.xml配置为:

    <bean id = "computer" class="com.zlc.test.Computer">
         <constructor-arg index="0" ref="date"></constructor-arg>
    </bean>
    <bean id="date" class="java.util.Date">
    </bean>

原文地址:https://www.cnblogs.com/zlingchao/p/9404399.html

时间: 2024-11-07 20:55:31

spring容器的注入方式总结的相关文章

spring 常用的注入方式有哪些?

1.xml中配置bean 的申明.注册<bean> 节点注册 bean<bean> 节点的 factory-bean 参数指工厂 bean,factory-method 参数指定工厂方法bean 的注入<property> 节点使用 set 方式注入<constructor-arg> 节点使用 构造方法注入实测代码maven pom 文件?<dependency><groupId>org.springframework</gro

Spring中Ioc容器的注入方式

1 通过setter方法注入 bean类: package com.test; public class UserServiceImplement implements IUserService { private IUserDao user; public IUserDao getUser() { return user; } public void setUser(IUserDao user) { this.user = user; } public void saveUser() { us

spring中依赖注入方式总结

Spring中依赖注入的四种方式 在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入  这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式). 使用属性的setter方法注入 首先要配置被注入的bean,在该bean对应的类中,应该有要注入的对象属性或者基本数据类型的属性.例如:为UserBiz类注入UserDAO,同时为UserBiz注入基本数据类型String,那么这时,就要为UserDAO对象和String类型设置se

Spring学习之注入方式

我们知道,Spring对象属性的注入方式有两种:设值注入和构造注入. 假设有个类为People,该对象包含三个属性,name和school还有age,这些属性都有各自的setter和getter方法,还有一个包含这三个属性的构造方法.如果用spring来管理这个对象,那么有以下两种方式为People设置属性: (1)设值注入 1 <bean id="people" class="com.abc.People"> 2 <property name=&

IOC容器和注入方式

IOC和DI IOC: 反转资源获取的方向 DI: IOC的另一种表述反式,即组件以一些预先定义好的方式(例如:setter方法)接收来自如容器的资源注入 IOC容器对象的关联关系 IOC前生--分离接口与实现 IOC前生--采用工厂设计模式 IOC前生--采用反转控制 配置Bean 配置形式:基于XML文件的方式:基于注解的方式 Bean的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法&实例工厂方法),FactoryBean() IOC容器BeanFactory&Applica

Java Spring 中你不知道的注入方式

前言 在Spring配置文件中使用XML文件进行配置,实际上是让Spring执行了相应的代码,例如: 使用<bean>元素,实际上是让Spring执行无参或有参构造器 使用<property>元素,实际上是让Spring执行一次setter方法 但Java程序还可能有其他类型的语句:调用getter方法.调用普通方法.访问类或对象的Field等,而Spring也为这种语句提供了对应的配置语法: 调用getter方法:使用PropertyPathFactoryBean 调用类或对象的

Spring IOC的注入方式

Spring IOC注入的方法主要有两种 1:设值注入 2:构造注入 简单来说一个是调用set方法设值,一个是通过构造函数设值 Spring-ioc.xml <?xml version= "1.0" encoding= "UTF-8"?> <beans xmlns= "http://www.springframework.org/schema/beans" xmlns:xsi= "http://www.w3.org/2

关于Spring IOC (依赖注入)你需要知道的一切

[版权申明]未经博主同意,不允许转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54561302 出自[zejian的博客] <Spring入门经典>这本书无论对于初学者或者有经验的工程师还是很值一看的,最近花了点时间回顾了Spring的内容,在此顺带记录一下,本篇主要与spring IOC相关 ,这篇博文适合初学者也适合spring有过开发经验的工程师,前者可用于全面了解Spring IOC的知识点,后者且

Spring讲解----------依赖注入(DI)

3.1.1  依赖和依赖注入 传统应用程序设计中所说的依赖一般指"类之间的关系",那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系.接口与接口之间的继承关系: 实现:表示类对接口的实现: 依赖:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有"拥有关系",而是一种"相识关系",只在某个特定地方(比如某个方法体内)才有关系. 关联:表示类与类或类与接口之间的依赖关系,表现为"拥有关系":具体到代