Spring注入有三种方式:

1、Set注入(使用最多

2、构造器注入(使用不多)

3、接口注入(几乎不用)不做测试了

1、Set注入:所谓Set注入就是容器内部调用了bean的Set***方法,注意:xml文件中的名字一定要和对象中属性的名字对应

1
2
3
4
5
6
7
8
9
public class User {
    private Role role;//注意:配置文件中property中name的名字跟这个属性的名字一定要相同,不然会找不到
    public Role getRole() {
        return role;
    }
    public void setRole(Role role) {
        this.role = role;
    }
}

配置文件配置方式

1
2
3
4
5
<bean id="role" class="com.fz.entity.Role"></bean>
 
<bean name="user" class="com.fz.entity.User" scope="prototype">
    <property name="role" ref="role"></property>
</bean>

2、构造器注入:

1
2
3
4
5
6
7
8
9
10
public class Role {
    private int id;
    private String roleName;
     
    public Role(int id, String roleName) {
        super();
        this.id = id;
        this.roleName = roleName;
    }
}

构造方法注入需要传参数:1、使用类型传参数  2、使用索引传参数(建议)

1
2
3
4
5
6
7
8
9
10
11
<bean id="role" class="com.fz.entity.Role">
    <!-- 1、使用类型给构造器传参数 -->
    <!-- <constructor-arg type="int" value="1"/>
         <constructor-arg type="java.lang.String" value="管理员"/>
     -->
 
    <!-- 2、使用索引给构造器传参数 -->
    <constructor-arg index="0" value="2" />
    <constructor-arg index="1" value="超级管理员" />
    <!-- 类型和索引可以结合使用,但是不能同时使用,也就是说构造器里有几个参数,这里也就有几个constructor-arg -->
</bean>

注意:在这里<bean>标签的名称可以用id也可以用name

<bean id="user">和<bean name="user">结果都是一样的,用id和用name的唯一区别就是,name可以使用特殊字符,id则不行。

例如:

<bean name="user**" >这样写不会报错,通过getBean也可以获取到

<bean id="user**" >这样写就直接会报错

Spring容器三种注入类型的更多相关文章

  1. spring ioc三种注入方式

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

  2. Spring IOC三种注入方式(接口注入、setter注入、构造器注入)(摘抄)

    IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转, Spring 框架的核心基于控制反转原理. 什么是控制反转?控制反转是一种将组件依赖关系的创建和管理置于程序外部的技 ...

  3. Spring IOC 三种注入方式(构造器,setter,接口)

    Spring的依赖注入有三种方式: 1,构造器注入 2,setter注入 3,接口注入 下面我给大家介绍一下这三种注入 1.构造器注入 构造器注入主要是依赖于构造方法去实现,构造方法可以是有参也可以是 ...

  4. Spring IOC 三种注入方式

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

  5. Spring的三种注入方式(Setter、构造函数和自动注入)

    一.Setter注入 这里我是希望在Student.java中调用Course.java中的内容. public class Course { public String name = "数 ...

  6. Spring的三种注入

    在学习Spring的过程中,其中一个很重要的就是依赖注入DI,在此总结一下 注入方式有三种: 一.构造器注入 二.Set方式注入(重点) 三.扩展方式注入 构造器注入: a.默认使用无参构造函数创建对 ...

  7. spring的三种注入方式

    接口注入(不推荐) 构造器注入(死的应用) getter,setter方式注入(比较常用) Type1 接口注入 我们常常借助接口来将调用者与实现者分离.如: public class ClassA  ...

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

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

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

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

随机推荐

  1. pigeon 介绍

    https://github.com/dianping/pigeon Pigeon开发指南 Pigeon是一个分布式服务通信框架(RPC),在美团点评内部广泛使用,是美团点评最基础的底层框架之一. 主 ...

  2. 机器学习实战笔记(Python实现)-07-模型评估与分类性能度量

    1.经验误差与过拟合 通常我们把分类错误的样本数占样本总数的比例称为“错误率”(error rate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m:相应的,1-a/m称为“精度”(acc ...

  3. 20145335郝昊《java程序设计》第1次实验报告

    2014535郝昊<java程序设计>实验1实验报告 实验名称 利用java语言实现凯撒密码,并运行测试. 实验内容 用java语言实现凯撒密码,凯撒密码是一种代替的移位密码,它将明文加密 ...

  4. spring定时器(注解的形式)

    最近有个需求,要在凌晨的时候,根据某几张表生成一张定时任务表里的数据,数据的状态为0(未整改),然后在当天晚上,再把这些数据的状态没改变的,改变状态为1(待整改),然后要用到定时器,百度了一下用注解形 ...

  5. Eye Protection FAQ

    Q: Why does smart protection not work? A: Please make sure the checkbox "Eye Protection" i ...

  6. html-常用块级及行级标签

    1.常见块级标签   <h1></h1>......<h6></h6>:标题标签 h标签:标题标签,自动加粗,h1最大,h6最小 例:(前后隔一行)   ...

  7. 梅森素数 判定总结 - Lucas-Lehmer算法 & Miller-rabin算法

    梅森素数 定义: if m是一个正整数 and 2^m-1是一个素数 then m是素数 if m是一个正整数 and m是一个素数 then M(m)=2^m-1被称为第m个梅森数 if p是一个素 ...

  8. class.getResource()和getResourceAsStream的用法

    转自:http://blog.csdn.net/lcj8/article/details/3502849 class.getResource()的用法 用JAVA获取文件,听似简单,但对于很多像我这样 ...

  9. redis 与session

    springboot:session集中存储到redis https://www.cnblogs.com/huiy/p/6907164.html springboot处理session生命周期 htt ...

  10. spring 及 spring boot 资源文件配置

    Spring配置文件引入xml文件: <import resource=" " />标签使用总结 https://www.cnblogs.com/javahr/p/83 ...