Spring课程 Spring入门篇 4-2 Spring bean装配(下)之Autowired注解说明1
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的更多相关文章
- Spring Boot -01- 快速入门篇(图文教程)
Spring Boot -01- 快速入门篇(图文教程) 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到[慕课网]手机 app ...
- Spring实践系列-入门篇(一)
本文主要介绍了在本地搭建并运行一个Spring应用,演示了Spring依赖注入的特性 1 环境搭建 1.1 Maven依赖 目前只用到依赖注入的功能,故以下三个包已满足使用. <properti ...
- Spring Cloud Alibaba入门篇
学习条件 了解web三层架构 熟练应用SSM架构 了解Maven管理工具的使用 熟练使用SpringBoot,以及了解SpringBoot基本原理. 了解部分术语:应用.工具.耦合.负载等 温馨提示: ...
- Spring Data JPA 入门篇
Spring Data JPA是什么 它是Spring基于ORM框架(如hibernate,Mybatis等).JPA规范(Java Persistence API)封装的一套 JPA应用框架,可使开 ...
- Spring Boot源码(四):Bean装配
为了演示Spring中对象是如何创建并放到spring容器中,这里新建一个maven项目: 其中pom.xm文件中只引入了一个依赖: <dependencies> <dependen ...
- Spring学习十----------Bean的配置之Autowired注解实现
© 版权声明:本文为博主原创文章,转载请注明出处 @Required -@Required注解适用于bean属性的setter方法 -这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在b ...
- Spring课程 Spring入门篇 2-1 IOC和bean容器
课程链接: 本节讲了5部分内容,6为项目demo: 1 接口及面向接口编程 2 什么是IOC 3 Spring的bean配置 4 Bean的初始化 5 Demo 自己理解: 1 高层模块和底层模块都依 ...
- spring boot 学习入门篇【spring boot项目的搭建以及如何加载jsp界面】
[ 前言] Spring Boot 简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置, ...
- Spring boot添加配置类@Configuration并初始化@Bean,@Resource和@Autowired都为null
大写加黑,找了好久@Resource和@Autowired都依赖不到创建的bean的原因:@Bean的方法名即是创建的Bean名称 import org.activiti.engine.Process ...
- spring boot(一):入门篇
构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
随机推荐
- luogu P3811线性求逆元
首先扩O:T了一个点(因为上界松),83分. #include <cstdio> using namespace std; int n, p; void exgcd(int a, int ...
- bootstrap添加模态窗后,再弹出消息提示框后,原先的滚动条消失
设置需要滚动的模态框 overflow :scroll
- SP7258 SUBLEX - Lexicographical Substring Search
\(\color{#0066ff}{ 题目描述 }\) 给定一个字符串,求排名第k小的串 \(\color{#0066ff}{输入格式}\) 第一行给定主串(len<=90000) 第二行给定询 ...
- [USACO5.4]奶牛的电信Telecowmunication 最小割
题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...
- python依赖文件的生成requirement.txt
移到你的环境中 pip freeze > requirement.txt
- PhpStrom 和 wamp 配置 xdebug
本地服务器: 1.php.ini 添加内容: ;设置xdebug的端口为9000 xdebug.remote_handler = dbgp xdebug.remote_host= localhost ...
- 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时,此路不通.路 ...
- APPcrawler基础原理解析及使用
一.背景 一年前,我们一直在用monkey进行Android 的稳定性测试 ,主要目的就是为了测试app 是否会产生Crash,是否会有ANR,页面错误等问题,在monkey测试过程中,实现了脱离Ca ...
- python模块之openpyxl介绍
openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档.其 ...
- thinkPHP 全局函数
M函数 TP的Model父类,封装的功能比较多,增删改查操作都具备.一些表,比如留言表,comment class CommentModel extends Model { } M('comment' ...