课程链接:

1    解析

2    代码演练

1    解析

1.1  @Required注解

该注解适用于bean属性的set方法

1.2  @Autowired

作用:

是为了把依赖的对象,自动的注入到bean里

使用方式:

1  @autowired required的默认值为false

2  每个类中只有一个构造器被标记为required=true

3  @autowired(required=false):如果找不到实体类,不报错。

4  可以添加到成员变量或者方法上边

2    代码演练

2.1  autowired作为成员变量注解

实体类:

package com.imooc.beanannotation.injection.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.imooc.beanannotation.injection.dao.InjectionDao; @Service
public class InjectionServiceImpl implements InjectionService { @Autowired
private InjectionDao injectionDao; @Override
public void save(String sArgs) {
injectionDao.save(sArgs);
// TODO Auto-generated method stub
System.out.println("开始保存!!!"+sArgs);
} }

dao类:

package com.imooc.beanannotation.injection.dao;

import org.springframework.stereotype.Repository;

@Repository
public class InjectionDaoImpl implements InjectionDao{ @Override
public void save(String args) {
// TODO Auto-generated method stub
System.out.println("保存======="+args);
} }

测试类:

package com.imooc.beanannotation.injection2;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner; import com.imooc.beanannotation.injection.service.InjectionService;
import com.imooc.test.base.UnitTestBase; @RunWith(BlockJUnit4ClassRunner.class)
public class TestInjectionService extends UnitTestBase{ public TestInjectionService() {
super("classpath*:spring-beanannotation-injection.xml");
// TODO Auto-generated constructor stub
} @Test
public void testInjectionServiceConstruct(){
try {
InjectionService iService = super.getbean("injectionServiceImpl");
iService.save("12346");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
} }

xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.imooc.beanannotation"></context:component-scan> </beans>

打印结果:

三月 10, 2019 11:16:29 上午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@52633079: startup date [Sun Mar 10 11:16:29 CST 2019]; root of context hierarchy
三月 10, 2019 11:16:29 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from URL [file:/F:/xiangmu3/Xin/FuQiang/Spring/ddwei-dao/target/classes/spring-beanannotation-injection.xml]
保存=======12346
三月 10, 2019 11:16:30 上午 org.springframework.context.support.ClassPathXmlApplicationContext doClose
信息: Closing org.springframework.context.support.ClassPathXmlApplicationContext@52633079: startup date [Sun Mar 10 11:16:29 CST 2019]; root of context hierarchy
开始保存!!!

2.2  autowired作为set方法注解

实体类:

package com.imooc.beanannotation.injection.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.imooc.beanannotation.injection.dao.InjectionDao; @Service
public class InjectionServiceImpl implements InjectionService { private InjectionDao injectionDao; @Autowired
public void setInjectionDao(InjectionDao injectionDao) {
this.injectionDao =
injectionDao;
}
@Override
public void save(String sArgs) {
injectionDao.save(sArgs);
// TODO Auto-generated method stub
System.out.println("开始保存!!!"+sArgs);
} }

打印结果:

三月 10, 2019 11:21:25 上午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5abce07: startup date [Sun Mar 10 11:21:25 CST 2019]; root of context hierarchy
三月 10, 2019 11:21:25 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from URL [file:/F:/xiangmu3/Xin/FuQiang/Spring/ddwei-dao/target/classes/spring-beanannotation-injection.xml]
保存=======12346
开始保存!!!12346

三月 10, 2019 11:21:26 上午 org.springframework.context.support.ClassPathXmlApplicationContext doClose
信息: Closing org.springframework.context.support.ClassPathXmlApplicationContext@5abce07: startup date [Sun Mar 10 11:21:25 CST 2019]; root of context hierarchy

2.3  autowired作为构造方法注解

实体类:

package com.imooc.beanannotation.injection.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import com.imooc.beanannotation.injection.dao.InjectionDao; @Service
public class InjectionServiceImpl implements InjectionService { private InjectionDao injectionDao; public void setInjectionDao(InjectionDao injectionDao) {
this.injectionDao = injectionDao;
} @Autowired
public InjectionServiceImpl(InjectionDao injectionDao) {
super();
this.injectionDao =
injectionDao;
}
@Override
public void save(String sArgs) {
injectionDao.save(sArgs);
// TODO Auto-generated method stub
System.out.println("开始保存!!!"+sArgs);
} }

打印结果:

三月 10, 2019 11:24:33 上午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5abce07: startup date [Sun Mar 10 11:24:33 CST 2019]; root of context hierarchy
三月 10, 2019 11:24:34 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from URL [file:/F:/xiangmu3/Xin/FuQiang/Spring/ddwei-dao/target/classes/spring-beanannotation-injection.xml]
保存=======12346
三月 10, 2019 11:24:34 上午 org.springframework.context.support.ClassPathXmlApplicationContext doClose
信息: Closing org.springframework.context.support.ClassPathXmlApplicationContext@5abce07: startup date [Sun Mar 10 11:24:33 CST 2019]; root of context hierarchy
开始保存!!!

Spring课程 Spring入门篇 4-2 Spring bean装配(下)之Autowired注解说明1的更多相关文章

  1. Spring Boot -01- 快速入门篇(图文教程)

    Spring Boot -01- 快速入门篇(图文教程) 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到[慕课网]手机 app ...

  2. Spring实践系列-入门篇(一)

    本文主要介绍了在本地搭建并运行一个Spring应用,演示了Spring依赖注入的特性 1 环境搭建 1.1 Maven依赖 目前只用到依赖注入的功能,故以下三个包已满足使用. <properti ...

  3. Spring Cloud Alibaba入门篇

    学习条件 了解web三层架构 熟练应用SSM架构 了解Maven管理工具的使用 熟练使用SpringBoot,以及了解SpringBoot基本原理. 了解部分术语:应用.工具.耦合.负载等 温馨提示: ...

  4. Spring Data JPA 入门篇

    Spring Data JPA是什么 它是Spring基于ORM框架(如hibernate,Mybatis等).JPA规范(Java Persistence API)封装的一套 JPA应用框架,可使开 ...

  5. Spring Boot源码(四):Bean装配

    为了演示Spring中对象是如何创建并放到spring容器中,这里新建一个maven项目: 其中pom.xm文件中只引入了一个依赖: <dependencies> <dependen ...

  6. Spring学习十----------Bean的配置之Autowired注解实现

    © 版权声明:本文为博主原创文章,转载请注明出处 @Required -@Required注解适用于bean属性的setter方法 -这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在b ...

  7. Spring课程 Spring入门篇 2-1 IOC和bean容器

    课程链接: 本节讲了5部分内容,6为项目demo: 1 接口及面向接口编程 2 什么是IOC 3 Spring的bean配置 4 Bean的初始化 5 Demo 自己理解: 1 高层模块和底层模块都依 ...

  8. spring boot 学习入门篇【spring boot项目的搭建以及如何加载jsp界面】

    [ 前言]  Spring Boot 简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置, ...

  9. Spring boot添加配置类@Configuration并初始化@Bean,@Resource和@Autowired都为null

    大写加黑,找了好久@Resource和@Autowired都依赖不到创建的bean的原因:@Bean的方法名即是创建的Bean名称 import org.activiti.engine.Process ...

  10. spring boot(一):入门篇

    构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

随机推荐

  1. luogu P3811线性求逆元

    首先扩O:T了一个点(因为上界松),83分. #include <cstdio> using namespace std; int n, p; void exgcd(int a, int ...

  2. bootstrap添加模态窗后,再弹出消息提示框后,原先的滚动条消失

    设置需要滚动的模态框 overflow :scroll

  3. SP7258 SUBLEX - Lexicographical Substring Search

    \(\color{#0066ff}{ 题目描述 }\) 给定一个字符串,求排名第k小的串 \(\color{#0066ff}{输入格式}\) 第一行给定主串(len<=90000) 第二行给定询 ...

  4. [USACO5.4]奶牛的电信Telecowmunication 最小割

    题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...

  5. python依赖文件的生成requirement.txt

    移到你的环境中 pip freeze > requirement.txt

  6. PhpStrom 和 wamp 配置 xdebug

    本地服务器: 1.php.ini  添加内容: ;设置xdebug的端口为9000 xdebug.remote_handler = dbgp xdebug.remote_host= localhost ...

  7. Codeforces Round #482 (Div. 2) C 、 Kuro and Walking Route(dfs)979C

    题目链接:http://codeforces.com/contest/979/problem/C 大致题意 给出n个点,有n-1个边将他们链接.给出x,y,当某一路径中出现x....y时,此路不通.路 ...

  8. APPcrawler基础原理解析及使用

    一.背景 一年前,我们一直在用monkey进行Android 的稳定性测试 ,主要目的就是为了测试app 是否会产生Crash,是否会有ANR,页面错误等问题,在monkey测试过程中,实现了脱离Ca ...

  9. python模块之openpyxl介绍

    openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档.其 ...

  10. thinkPHP 全局函数

    M函数 TP的Model父类,封装的功能比较多,增删改查操作都具备.一些表,比如留言表,comment class CommentModel extends Model { } M('comment' ...