spring in action 学习笔记五:@Autowired这个注解如何理解
@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这个注解如何理解的更多相关文章
- spring in action学习笔记七:@Conditional注解的用法
@Profile注解是@Conditional注解的一个例子.即@Profile也是用@Conditional注解来实现的. 必须让条件实现Condition这个接口. 下面的案例讲如果环境中有mag ...
- spring in action学习笔记十五:配置DispatcherServlet和ContextLoaderListener的几种方式。
在spring in action中论述了:DispatcherServlet和ContextLoaderListener的关系,简言之就是DispatcherServlet是用于加载web层的组件的 ...
- spring in action 学习笔记十四:用纯注解的方式实现spring mvc
在讲用纯注解的方式实现springmvc之前先介绍一个类:AbstractAnnotationDispatcherServletInitializer.这个类的作用是:任何一个类继承AbstractA ...
- spring in action学习笔记一:DI(Dependency Injection)依赖注入之CI(Constructor Injection)构造器注入
一:这里先说一下DI(Dependency Injection)依赖注入有种表现形式:一种是CI(Constructor Injection)构造方法注入,另一种是SI(Set Injection) ...
- spring in action 学习笔记八:用@Primary 或者@Qualifier消除@Autowired引起的歧义现象
首先解释一下@Primary和@Qualifier这两个注解的意思:@Primary的意思是在众多相同的bean中,优先使用用@Primary注解的bean.而@Qualifier这个注解则指定某个b ...
- Spring in Action学习笔记(1)
Spring基础 IoC 控制反转, 也称为DI-依赖注入 一.装配bean 推荐顺序:自动装配 -> JavaConfig装配 -> XML装配 1. 自动装配 @Component 注 ...
- Spring in Action 学习笔记三-AOP
面向切面的Spring 2015年10月9日 11:30 屏幕剪辑的捕获时间: 2015-10-9 14:30 屏幕剪辑的捕获时间: 2015-10-9 ...
- Spring in Action 学习笔记二-DI
装配bean 2015年10月9日 9:49 Sprng中,对象无需自己负责查找或创建其关联的其他对象.相关,容器负责吧需要相互协作的对象引用赋予各个对象. 创建应用对象之间协 ...
- Spring in Action 学习笔记一
Spring 核心 Spring的主要特性仅仅是 依赖注入DI和面向切面编程AOP JavaBean 1996.12 Javav 规范针对Java定义了软件组件模型,是简单的J ...
随机推荐
- thymeleaf单选回显,多选回显,选回显,下拉默认选中第一个
//默认选中第一个<input type ="radio" name="repaymentType" th:each ="repaymentTy ...
- Docker自学纪实(二)Docker基本操作
安装docker 以CentOS7为例: 安装:yum -y install docker 启动:systemctl start docker 设置开机自启:systemctl enable dock ...
- kali安装ssh服务
一. kali安装ssh服务 1.修改源 root@DGG:~# vi /etc/apt/sources.list deb http://http.kali.org/kali kali-rolling ...
- IDEA 工具项目的配置及如何打war包
1. Project Structure 1.1 首先点击File-ProjectStructure,进入项目配置: 2.Project Settings配置 2.1 Project 2.1.1 f ...
- 访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server“
在使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to t ...
- PHP处理mysql事务
MYSQL的事务处理主要有两种方法.1.用begin,rollback,commit来实现begin 开始一个事务rollback 事务回滚commit 事务确认2.直接用set来改变mysql的自动 ...
- C语言字符篇(五)内存函数
memcpy不可以把目的地址写成本身 但是memmove可以,因为它是先保存到临时空间 #include <string.h> void *memcpy(void *dest, con ...
- 无序数组中第K大的数
1. 排序法 时间复杂度 O(nlogn) 2. 使用一个大小为K的数组arr保存前K个最大的元素 遍历原数组,遇到大于arr最小值的元素时候,使用插入排序方法,插入这个元素 时间复杂度,遍历是 O( ...
- java线程安全(单例模式)(转载)
原文链接:http://www.jameswxx.com/java/%E8%AF%B4%E8%AF%B4%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/ 单例模式?多么简单! ...
- 小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)
补充概念 AJAX(异步javascript和XML) Asynchronous javascript and xml 是一个概念,而非一种新的编程语言,是一组现有技术的组合 通过客户端脚本动态更新页 ...