网站大量收购独家精品文档,联系QQ:2885784924

Spring@Autowired注解与自动装配.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring@Autowired注解与自动装配

@Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,这里必须明确:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier使用;@Autowired可以对成员变量进行标注package com.baobaotao;import org.springframework.beans.factory.annotation.Autowired;public class Boss {@Autowiredprivate Car car;@Autowiredprivate Office office;…}在applicationContext.xml中 把原来 引用的property 标签也去掉。?xml version=1.0 encoding=UTF-8 ?beans xmlns=/schema/beansxmlns:xsi=/2001/XMLSchema-instancexsi:schemaLocation=/schema/beans/schema/beans/spring-beans-2.5.xsd!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired 的 Bean 进行自动注入 --bean class=org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor/!-- 移除 boss Bean 的属性注入配置的信息 --bean id=boss class=com.baobaotao.Boss/bean id=office class=com.baobaotao.Officeproperty name=officeNo value=001//beanbean id=car class=com.baobaotao.Car scope=singletonproperty name=brand value= 红旗 CA72/property name=price value=2000//bean/beans这样,当 Spring 容器启动时,AutowiredAnnotationBeanPostProcessor将扫描 Spring 容器中所有 Bean,当发现 Bean 中拥有 @Autowired注释时就找到和其匹配(默认按类型匹配)的 Bean,并注入到对应的地方中去。    按照上面的配置,Spring 将直接采用 Java 反射机制对 Boss 中的 car 和 office 这两个私有成员变量进行自动注入。所以对成员变量使用 @Autowired后,您大可将它们的 setter 方法(setCar() 和setOffice())从 Boss 中删除。@Autowired可以对方法或构造函数进行标注package com.baobaotao;public class Boss {private Car car;private Office office;@Autowiredpublic void setCar(Car car) {this.car = car;}@Autowiredpublic void setOffice(Office office) {this.office = office;}…}这时,@Autowired 将查找被标注的方法的入参类型的 Bean,并调用方法自动注入这些 Bean。而下面的使用方法则对构造函数进行标注:[java] view plaincopyprint?package com.baobaotao;public class Boss {private Car car;private Office office;@Autowiredpublic Boss(Car car ,Office office){this.car = car;this.office = office ;}…}由于 Boss() 构造函数有两个入参,分别是 car 和 office,@Autowired将分别寻找和它们类型匹配的 Bean,将它们作为 Boss(Car car ,Office office) 的入参来创建 Boss Bean。

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档