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">







最新文章

  1. ArcGIS10.2.2 Desktop直接连接数据库的具体步骤
  2. Windows下memcached.exe的安装与配置
  3. 如何预览将要上传的图片-使用H5的FileAPI
  4. gulp插件(gulp-jmbuild),用于WEB前端构建
  5. 读高性能JavaScript编程学英语 第一章第三页第一段话
  6. HDU 2072 单词数
  7. Java中List、Set和Map的区别--转载
  8. Arrays, Hashtables and Dictionaries
  9. kettle Add XML 、 XML Join
  10. POJ 3349 Snowflake Snow Snowflakes(哈希)
  11. C# 内存管理优化实践
  12. 多线程实际运用&lt;第七篇&gt;
  13. tabBar自定义
  14. 使用Java语言开发微信公众平台(六)
  15. SQL命令语句进行大数据查询如何进行优化
  16. rails将类常量重构到数据库对应的表之后记
  17. python学习day8 文件操作(深度学习)
  18. G1 垃圾收集器入门
  19. 【转】sqlserver使用sql导出索引
  20. Idea xml 粘贴文本保持原有格式

热门文章

  1. APP图标设计小技巧:在iOS上快速获得APP图标的真实预览图
  2. iOS 所有设备一览 &amp;&amp; CoreFoundation源码
  3. i.MX 6Q开发环境配置
  4. 机器学习与R语言:kNN
  5. Centos下给PHP7添加Xhprof性能分析
  6. JavScript 日期格式化
  7. 20145328 《Java程序设计》第5周学习总结
  8. Centos下ftp协议连接远程ftp server主机
  9. MR案例:定制Partitioner
  10. SpringBoot 打包为Docker进行