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. SSH整合不错的博客

    https://blog.csdn.net/struggling_rong/article/details/63153833?locationNum=9&fps=1  好好看看看哦

  2. python3_ftp文件传输

    Python中的ftplib模块 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件 FTP的工作流程及基本操作可参考协议RFC95 ...

  3. Java伙伴系统(模拟)

    参考:https://labrick.cc/2015/10/12/buddy-system-algorithm/ 代码过烂 不宜参考. output: [operating.entity.Heap@4 ...

  4. 《Java入门第三季》第二章 认识 Java 中的字符串

    什么是 Java 中的字符串.1.在Java的世界里,字符串被作为String类型的对象处理. 2.通用的初始化的方式:String s = new String("i love you & ...

  5. 20145109 《Java程序设计》第九周学习总结

    JDBC 1 . DriverManager Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 2 . ...

  6. intellij 文件太大,无法code assistant

    添加 idea.max.intellisense.filesize=2500 在IDE_HOME\bin\idea.properties https://intellij-support.jetbra ...

  7. MU puzzle

    2017-08-06 20:49:38 writer:pprp 三种操作: 1.MUI -> MUIUI 2.MUUU -> MU 3.MUIII -> MUU 分析:有两个操作:将 ...

  8. gdb 调试coredump文件过程:

    第一步:首先需要一个进程的coredump文件,怎么搞出coredump文件呢? 1. ps -fax|grep                 进程名称 找到进程的pid 2.gdb -p pid ...

  9. 测试mysql

    sysbench 测试mysql TODO emacs

  10. NNCRF之NNSegmentation, NNPostagging, NNNameEntity

    这里主要介绍NNSegmentation 介绍: NNSegmentation是一个基于LibN3L的利用神经网络来进行分词的工具. 他可以通过不同的模型(NN, RNN, GatedNN, LSTM ...