@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. [Ljava.lang.String; cannot be cast to java.lang.String报错的原因

    完整错误信息: java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String 报这个错的原因 ...

  2. 深入理解PHP7之zval

    PHP7已经发布, 如承诺, 我也要开始这个系列的文章的编写, 今天我想先和大家聊聊zval的变化. 在讲zval变化的之前我们先来看看zval在PHP5下面是什么样子 PHP5zval回顾在PHP5 ...

  3. 解决php文字及图片显示乱码的问题

    我们在学习PHP的过程中,想必有不少新手朋友们都遇到过乱码的问题,解决乱码问题不仅是小白们必须掌握的基础知识点,也是最为常见的PHP面试题之一.下面就结合简单代码示例给大家总结介绍下,PHP遇到乱码时 ...

  4. list推导式,dict推导式,set推导式

    生成一个1-14的列表 1.1 普通for循环 # lst = [] # for i in range(1,15): # lst.append(i) # print(lst) # # 结果: # [1 ...

  5. 【yii2】rules规则的默认值

    ExampleModel.php /** * {@inheritdoc} */ public function rules() { return [ ['updated_at','default',' ...

  6. <Docker学习>3. docker镜像命令使用

    镜像提供容器运行时所需要的程序,资源.配置文件等,是一个特殊的文件系统.是容器运行的基础.镜像是多层文件系统组成的,是一个分层存储的架构,在镜像的构建中,会一层层的构建,每一层构建完成就不会发生改变, ...

  7. Ubuntu下安装libpcap+测试安装

    1.从ftp://ftp.gnu.org/gnu/下载flex.bison.GNU M4.libpcap安装包,具体的链接分别如下: flex下载:http://flex.sourceforge.ne ...

  8. Partitioning by Palindromes UVA - 11584 简单dp

    题目:题目链接 思路:预处理出l到r为回文串的子串,然后如果j到i为回文串,dp[i] = min(dp[i], dp[j] + 1) AC代码: #include <iostream> ...

  9. C# 中的正则简单例子

    public static void Main() { Regex rgx = new Regex(@"[S|s]et-[C|c]ookie: (?<cookieName>\w+ ...

  10. MyBatis---自动创建表

    该项目基于Maven实现 该项目实现了在项目启动时,对数据库表进行操作 源码下载 实现步骤: 1.向pom.xml文件添加maven依赖 <dependency> <groupId& ...