spring 使用自动装配合作者bean(autowire)

来源:互联网 发布:适用于mac的浏览器 编辑:程序博客网 时间:2024/05/16 17:48

spring 能自动装配bean和bean之间的依赖关系,即无须使用ref显式指定依赖的bean,而是由spring容器检查xml配置文件内容,根据某种规则,为调用者bean注入被依赖的bean

spring自动装配可以通过<beans../>元素的default-autowire属性指定,该属性对整个文件中的bean起作用;也可以通过<bean.../>元素的autowire属性指定,该指定的属性只适用于该bean。

  1. no:不使用自动装配。bean依赖必须通过ref元素定义。这是默认的配置,在较大的部署环境中不鼓励改变这个配置。显示配置合作者能够清晰的得到依赖关系
  2. byName:根据setter方法名进行自动装配。spring容器找到所有的bean,找出其id与setter方法名去掉set前缀,并小写首字母后同名的bean来完成注入。如果没有bean匹配则没有bean被注入
  3. byType:根据setter方法的形参类型来自动装配。spring容器查找所有的bean,如果正好有一个bean类型和setter方法的形参相同,则自动注入这个bean。如果找到多个,则抛出异常;如果没有找到,则不会执行setter方法
  4. constructor:与byType类似,区别在于自动匹配构造函数的参数类型,,如果容器不能正好找到一个与构造函数参数类型匹配的bean,则抛出异常
  5. autodetect:spring根据bean的内部结构,自行决定使用constructor还是byType,前者比后者优先级更高
原创粉丝点击