Spring的自动装配,也就是定义bean的时候让spring自动帮你匹配到所需的bean,而不需要我们自己指定了。

例如:

User实体类里面有一个属性role

1
2
3
4
5
6
7
public class User {
    private int id;
    private String username;
    private String password;
    private Role role;
    /*****省略get and set****/
}

在我们的applicationConext.xml文件里,假如有两个role对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
 
    <bean id="role" class="com.fz.entity.Role"></bean>
    <bean id="role1" class="com.fz.entity.Role"></bean>
    <bean name="user" class="com.fz.entity.User" scope="prototype">
        <property name="role" ref="role"></property>
    </bean>
</beans>

此时<property name="role" ref="role"></property>找到的就是第一个role对象,但是在bean上配置上了autowire之后,则可以不用写<property name="role" ref="role"></property>这个属性了。则是如下的写法:

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
 
    <bean id="role1" class="com.fz.entity.Role"></bean>
    <bean id="role2" class="com.fz.entity.Role"></bean>
    <bean name="user" class="com.fz.entity.User" scope="prototype" autowire="default">       
    </bean>
</beans>

autowire的意思就是spring帮你匹配容器里的bean,而匹配规则有如下几种


default:如果在bean上指定了default,则它会去beans标签上去找default-autowire属性

no:不匹配,但是bean必须定义ref元素

byName:根据名字匹配(如果容器里没有该name的bean,则该属性为null)

byType:根据类型匹配(如果同时找多个相同类型的bean,则报错)

constructor:根据构造器匹配(很少使用)


总结:

1、autowire可以写在bean上,也可以写在根元素beans上(写在beans则表示所有的bean都按此规则来自动匹配)

<bean autowire="byName">     <beans autowire="byName">







SpringXML方式配置bean的自动装配autowire的更多相关文章

  1. IDEA02 利用Maven创建Web项目、为Web应用添加Spring框架支持、bean的创建于获取、利用注解配置Bean、自动装配Bean、MVC配置

    1 环境版本说明 Jdk : 1.8 Maven : 3.5 IDEA : 专业版 2017.2 2 环境准备 2.1 Maven安装及其配置 2.2 Tomcat安装及其配置 3 详细步骤 3.1 ...

  2. SpringXML方式配置bean的生存范围Scope

    在一个bean的配置里面可以指定一个属性Scope,也就是bean的范围,bean的生命周期. Scope可取的值5种:singleton(默认).prototype.request.session. ...

  3. SpringXML方式配置bean的集合注入:list,map,properties

    新建一个bean,设置相应的集合属性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class Collecti ...

  4. SpringXML方式配置bean的生命周期lifecycle

    在Spring中容器在初始化某个bean的时候会有相应的生命周期,类似于Servlet,有相应的init,destory等方法 例如:如下service 1 2 3 4 5 6 7 8 9 10 11 ...

  5. SpringXML方式配置bean的懒加载lazy-init

    lazy-init(懒加载),表示该bean在容器初始化的时候不进行初始化. 例如: <bean name="role1" class="com.fz.entity ...

  6. Spring bean的自动装配属性

    bean的自动装配属性能简化xml文件配置. bean 的自动装配属性分为四种: 1.byName 2.byTyoe 3.constructor 4. autodetect byName: 它查找配置 ...

  7. bean的自动装配,使用注解开发,使用java的方式配置Spring

    bean的自动装配 自动装配是Spring满足bean依赖一种方式! Spring会在上下文中自动寻找,并自动给bean装配属性! 在Spring中有三种装配的方式 在xml中显示的配置 在java中 ...

  8. spring实战二之Bean的自动装配(非注解方式)

    Bean的自动装配 自动装配(autowiring)有助于减少甚至消除配置<property>元素和<constructor-arg>元素,让Spring自动识别如何装配Bea ...

  9. Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配

    一.Spring IOC 容器支持自动装配 Bean,所谓自动装配是指,不需要通过 <property> 或 <constructor-arg> 为 Bean 的属性注入值的过 ...

随机推荐

  1. url get与post 请求长度限制

    零.总结 文章数据来源于网络,可能存在变动,但是原理是一样的. HTTP 协议 未规定 GET 和POST的长度限制 GET的最大长度显示是因为 浏览器和 web服务器限制了 URI的长度 不同的浏览 ...

  2. zookeeper 监听事件 CuratorWatcher

    zookeeper 监听事件 CuratorWatcher CuratorWatcher一次注册只监听一次,不监听查询. 1.监听测试类 package com.qy.learn.zk.curator ...

  3. JS正则表达式从入门到入土(7)—— 分组

    分组 在使用正则的时候,有时候会想要匹配一串字符串连续出现多次的情况,比如:我想匹配字符串Byron连续出现3次的情况. 有些人会直接写: Byron{3} 但是,这种情况仅仅会匹配Byro加上三个n ...

  4. Django学习笔记之Queryset的高效使用

    对象关系映射 (ORM) 使得与SQL数据库交互更为简单,不过也被认为效率不高,比原始的SQL要慢. 要有效的使用ORM,意味着需要多少要明白它是如何查询数据库的.本文我将重点介绍如何有效使用 Dja ...

  5. FWT快速沃尔什变换

    前言 学多项式怎么能错过\(FWT\)呢,然而这真是个毒瘤的东西,蒟蒻就只会背公式了\(\%>\_<\%\) 或卷积 \[\begin{aligned}\\ tf(A) = (tf(A_0 ...

  6. ThinkPHP5执行流程分析

    1.入口文件(tp5\public\index.php) 作用: 1)定义目录常量. 2)加载框架引导目录. 2.框架引导目录(tp5\thinkphp\start.php) 作用: 1)引导基础文件 ...

  7. [Linux 002]——Linux的常用命令

    经过前面的学习,大概了解了计算机组成原理和操作系统的一些知识.尽管这些知识都是琐碎的,拼凑的,在以后的工作和学习中仍需进行深入的了解.但是这些预备知识对于准备跨入 Linux 大门的童鞋来说,应该是足 ...

  8. 33c3-pwn500-recurse

    Recurse 好记性不如烂笔头.当时没有记录,现在趁着有时间简单写一写,为以后留备份. 这个题目当时并没有队伍做出来,赛后作者发布了题目的源码和解答.看了之后发现是一个UAF漏洞,不过漏洞很不好找. ...

  9. .NET中常见的锁 笔记

    Lock.Monitor lock和Monitor的区别 1.lock的底层本身是Monitor来实现的,所以Monitor可以实现lock的所有功能. 2.Monitor有TryEnter的功能,可 ...

  10. 位运算 进制转化 STL中bitset用法

    2017-08-17 16:27:29 writer:pprp /* 题目名称:输入十进制以二进制显示 程序说明:同上 作者:pprp 备注:无 日期:2017/8/17 */ #include &l ...