码迷,mamicode.com
首页 > 编程语言 > 详细

Spring系列【5】@Autowired详解(补充)

时间:2014-12-14 13:15:38      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

注意:以下内容基于Spring2.5以上版本。

一共讲解四种@Autowired的用法,第一种构造方法上的使用已在前一节讲解过,本次讲解其它三种。

现在有一个老板Boss.java,他拥有一台车和一个办公室。

public class Boss {  
    private Car car;  
    private Office office;  
  
    // 省略 get/setter  
  
    @Override  
    public String toString() {  
        return "car:" + car + "\n" + "office:" + office;  
    }  
}  

Spring配置文件如下:声明AutowiredAnnotationBeanPostProcessor类

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean class="org.springframework.beans.factory.annotation.
        AutowiredAnnotationBeanPostProcessor"/>

    <bean id="boss" class="com.baobaotao.Boss"/>
 
    <bean id="office" class="com.baobaotao.Office">
        <property name="officeNo" value="001"/>
    </bean>
    <bean id="car" class="com.baobaotao.Car" scope="singleton">
        <property name="brand" value=" 红旗 CA72"/>
        <property name="price" value="2000"/>
    </bean>
</beans>

1. @Autowired 进行成员变量自动注入的代码:其中Car和Office类自己搞定。如果这个都搞不定,建议不要往下看了,回头学java基础吧。

import org.springframework.beans.factory.annotation.Autowired;

public class Boss {

    @Autowired
    private Car car;

    @Autowired
    private Office office;
    
    //省略getter/setter方法
}

2. @Autowired 在setter方法上的使用。

   这个方法都不在讲解了。

3. @Autowired 在任何方法上的使用,只要该方法定义了需要被注入的参数即可实现Bean的注入。

当 Spring 容器启动时,AutowiredAnnotationBeanPostProcessor 将扫描 Spring 容器中所有 Bean,当发现 Bean 中拥有 @Autowired 注释时就找到和其匹配(默认按类型匹配)的 Bean,并注入到对应的地方中去。

Spring系列【5】@Autowired详解(补充)

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/jikoy/p/4162445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!