@Autowired这个注解的意思就是自动装配。他把一个bean对象自动装配到另一个对象中。下面的案例证明了spring的自动装配。

定义一个Sixi类。代码如下:

 package com.qls.autowired.soundsystem;

 import org.springframework.stereotype.Component;

 /**
* Created by ${秦林森} on 2017/6/8.
*/
@Component
public class Sixi {
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}

定义一个Ouyangfeng类,这个类中把Sixi类自动装配进来,代码如下:

package com.qls.autowired.soundsystem;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; /**
* Created by ${秦林森} on 2017/6/8.
*/
@Component
public class Ouyangfeng {
/**
* @Autowired这个注解是自动装配。
* 何为装配?the act of creating associations between application component is commonly referred
* to as wiring(装配)。
* 建立各个组件之间的联系的行为称为装配。
* 何为自动装配:spring框架帮你装配。
*/
@Autowired
private Sixi sixi;
public void ouyangfeng(){
System.out.println("欧阳凤是泗溪村的大学生村官");
}
public Sixi getSixi(){
return sixi;
}
}

定义一个配置类:代码如下:

 package com.qls.autowired.soundsystem;

 import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; /**
* Created by ${秦林森} on 2017/6/8.
*/
@Component
public class Ouyangfeng {
/**
* @Autowired这个注解是自动装配。
* 何为装配?the act of creating associations between application component is commonly referred
* to as wiring(装配)。
* 建立各个组件之间的联系的行为称为装配。
* 何为自动装配:spring框架帮你装配。
*/
@Autowired
private Sixi sixi;
public void ouyangfeng(){
System.out.println("欧阳凤是泗溪村的大学生村官");
}
public Sixi getSixi(){
return sixi;
}
}

定义一个测试类:代码如下:

package com.qls.autowired.soundsystem;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
* Created by ${秦林森} on 2017/6/8.
*/ public class AutoWiredTest {
public static void main(String[] args) {
/**
* AnnotationConfigApplicationContext
*/
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AutoWiredConfig.class);
Sixi sixi = ac.getBean(Sixi.class);
Ouyangfeng ouyangfeng = ac.getBean(Ouyangfeng.class);
/**
* 从Ouyangfeng这个类得到的Sixi这个对象如果和从容器中得到的Sixi对象相等,
* 则说明spring已经完成自动装配。
*/
System.out.println(ouyangfeng.getSixi()==sixi); }
}/**output:ture
*/

从测试类的结果可以看出Sixi这个bean确实已经自动装配到Ouyangfengz这个类中了。

spring in action 学习笔记五:@Autowired这个注解如何理解的更多相关文章

  1. spring in action学习笔记七:@Conditional注解的用法

    @Profile注解是@Conditional注解的一个例子.即@Profile也是用@Conditional注解来实现的. 必须让条件实现Condition这个接口. 下面的案例讲如果环境中有mag ...

  2. spring in action学习笔记十五:配置DispatcherServlet和ContextLoaderListener的几种方式。

    在spring in action中论述了:DispatcherServlet和ContextLoaderListener的关系,简言之就是DispatcherServlet是用于加载web层的组件的 ...

  3. spring in action 学习笔记十四:用纯注解的方式实现spring mvc

    在讲用纯注解的方式实现springmvc之前先介绍一个类:AbstractAnnotationDispatcherServletInitializer.这个类的作用是:任何一个类继承AbstractA ...

  4. spring in action学习笔记一:DI(Dependency Injection)依赖注入之CI(Constructor Injection)构造器注入

    一:这里先说一下DI(Dependency Injection)依赖注入有种表现形式:一种是CI(Constructor Injection)构造方法注入,另一种是SI(Set Injection) ...

  5. spring in action 学习笔记八:用@Primary 或者@Qualifier消除@Autowired引起的歧义现象

    首先解释一下@Primary和@Qualifier这两个注解的意思:@Primary的意思是在众多相同的bean中,优先使用用@Primary注解的bean.而@Qualifier这个注解则指定某个b ...

  6. Spring in Action学习笔记(1)

    Spring基础 IoC 控制反转, 也称为DI-依赖注入 一.装配bean 推荐顺序:自动装配 -> JavaConfig装配 -> XML装配 1. 自动装配 @Component 注 ...

  7. Spring in Action 学习笔记三-AOP

    面向切面的Spring 2015年10月9日 11:30             屏幕剪辑的捕获时间: 2015-10-9 14:30             屏幕剪辑的捕获时间: 2015-10-9 ...

  8. Spring in Action 学习笔记二-DI

    装配bean 2015年10月9日 9:49             Sprng中,对象无需自己负责查找或创建其关联的其他对象.相关,容器负责吧需要相互协作的对象引用赋予各个对象. 创建应用对象之间协 ...

  9. Spring in Action 学习笔记一

    Spring 核心       Spring的主要特性仅仅是 依赖注入DI和面向切面编程AOP       JavaBean 1996.12 Javav 规范针对Java定义了软件组件模型,是简单的J ...

随机推荐

  1. 制作linux系统U盘并使用U盘安装CentOS7.6系统

    目录   一.制作linux启动盘     1.1. 准备工作     1.2. 制作linux系统U盘   二.使用U盘安装Centos7.6     2.1. 使用U盘启动     2.2. 更改 ...

  2. Spring Security 简介

    本文引自:https://blog.csdn.net/xlecho/article/details/80026527 在 Web 应用开发中,安全一直是非常重要的一个方面.安全虽然属于应用的非功能性需 ...

  3. java-访问控制修饰符

    访问权限 public    任何情况都可以访问 默认包 本包范围内可以访问到 protect       同一个包里的所有类所可以访问:所有子类(子类可以不和父类在同一个包)都可以访问 privat ...

  4. PHP设计者---composer

    Composer 是 PHP5以上 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.Composer 不是一个包管理器.是的,它涉及 "packages&q ...

  5. Altium Designer使用5:AD18的DXP在什么地方?

    1.在顶上的菜单栏右击

  6. [CodeForces940E]Cashback(set+DP)

    Description Since you are the best Wraith King, Nizhniy Magazin «Mir» at the centre of Vinnytsia is ...

  7. js过滤和包含数组方法

    let data=[{'Linda':'apple'},{'Linda':'pear'},{'Linda':'apricot'},{'Linda':'peach'},{'Linda':'grape'} ...

  8. TouTiao开源项目 分析笔记4==>一个简单APP 整体常用框架

    1.效果预览 1.1.如下图所以,到目前为止所有的功能. 2.从InitApp开始->SplashActivity->MainActivity 2.1.InitApp源代码.这是整个项目的 ...

  9. java练习——多态与异常处理

    1.   上面的程序运行结果是什么? 2.   你如何解释会得到这样的输出? parent = chlid; 所以child中的方法被赋予parent,所以用child方法输出了child的成员变量: ...

  10. 公布一些常用的WebServices

    天气预报Web服务,数据来源于中国气象局  Endpoint   Disco   WSDL IP地址来源搜索 WEB 服务(是目前最完整的IP地址数据)  Endpoint   Disco   WSD ...