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. 【分库分表】sharding-jdbc—解决的问题

    一.遇到的问题 随着互联网技术和业务规模的发展,单个db的表里数据越来越多,sql的优化已经作用不明显或解决不了问题了,这时系统的瓶颈就是单个db了(或单table数据太大).这时候就涉及到分库分表的 ...

  2. 前端js实现字符串/图片/excel文件下载

    在web开发中,如果你想让用户下载或者导出一个文件,应该怎么做呢?传统的做法是在后端存储或者即时生成一个文件来提供下载功能,这样的优势是可以做权限控制.数据二次处理,但缺点是需要额外发起请求.增大服务 ...

  3. Java-性能调优-理解GC日志

    [ ~]# cat gc.log.0 | grep 'Full GC' 1.652: [Full GC (System) 1.652: [CMS: 0K->21718K(262144K), 0. ...

  4. Vue限制输入框只能输入整数

    首先,得明确监听input输入框变化的方法是input,不是change. 方案一:type= "number" 作用: 成功禁止输入字母 能输入小数点,第一位可以为0,小数点能输 ...

  5. localAddress

    $(function(){ <% out.println("/** ip:"+request.getLocalAddr()+"("+request.get ...

  6. 【前端】vue.js实现按钮的动态绑定

    vue.js实现按钮的动态绑定 实现效果: 实现代码以及注释: <!DOCTYPE html> <html> <head> <title>按钮绑定< ...

  7. [专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑【转】

    本文转载自: 因为要做毕设需要安装caffe2,配置cuda8.0,但是安装nvidia驱动真的是把我难倒了,看了很多篇博文都没有效果,现在我自己重新总结了下几种 安装方法(亲测有效),希望能帮到大家 ...

  8. ubuntu18.04编译openwrt前的准备

    1.获取openwrt源码 git clone https://github.com/openwrt/openwrt.git 2.安装一些库及必备程序: sudo apt-get install li ...

  9. websocket 重连解决方案

    1.websocket 重连的脚本:https://github.com/joewalnes/reconnecting-websocket                 reconnecting-w ...

  10. Editor.md的安装使用(MarkDown)

    1.官网下载:http://pandao.github.io/editor.md/ 2.使用例子: <!DOCTYPE html> <html lang="zh-cn&qu ...