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应用的初始搭建以及开发过程.该框 ...
随机推荐
- webpack4 入门(二)
一.管理输出 1.多入口配置 entry: { index1: './src/index.js', index2: './src/index2.js' }, output: { filename: ' ...
- Django 实现的分页类
后台实现的一个分页类: from django.utils.safestring import mark_safe class Page: def __init__(self, current_pag ...
- #6145. 「2017 山东三轮集训 Day7」Easy 动态点分治
\(\color{#0066ff}{题目描述}\) JOHNKRAM 最近在参加 C_SUNSHINE 举办的聚会. C 国一共有 n 座城市,这些城市由 n−1 条无向道路连接.任意两座城市之间有且 ...
- 15.Subtree of Another Tree(判断一棵树是否为另一颗树的子树)
Level: Easy 题目描述: Given two non-empty binary trees s and t, check whether tree t has exactly the s ...
- python安装出现的证书问题
1. pip install pyenv 安装时出现下图错误 Could not install packages due to an EnvironmentError: HTTPSConnectio ...
- ubuntu 16 64位编译安装php
./configure \ --prefix=/usr/local/php7 \ --exec-prefix=/usr/local/php7 \ --with-config-file-path=/us ...
- C#后端调用WebApi地址
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using Syst ...
- 网络流之最大流与最小费用流入门&&模板
理解处 刷题处 模板处 最大流模板 处理重边的+(优化) #include<bits/stdc++.h> using namespace std; ; const int INF = 0x ...
- 江西财经大学第一届程序设计竞赛 C
链接:https://www.nowcoder.com/acm/contest/115/C来源:牛客网 题目描述 决赛圈还剩下两个人,“伏地魔”XDD和跑毒进圈的FZL,XDD拿着狙击枪AWM瞄准并准 ...
- Oracle SQL优化规则详解
1. 选用适合的Oracle优化器 Oracle的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.o ...